Бортовой журнал Ктулху

Настройка файла или раздела подкачки в Linux

Раздел или файл подкачки в Linux (и не только) необходим для ситуаций, когда заканчивается оперативная память а программам еще есть куда расти. К сожалению, даже 8/16 Gb сейчас не является достаточным объемом памяти и какая-нибудь Java с Google Chrome в паре способны заполнить все свободное пространство.

Swap - это некая область на жестком диске для временного хранения избытка данных из оперативной памяти, для которых там больше нет места. Это такой способ легко увеличить системные ресурсы в ущерб производительности. Пространство подкачки используется только тогда, когда память уже полностью занята, и туда будут помещаться только данные, которые давно использовались.

Работа с информацией будет выполняться намного медленнее, чем в оперативной памяти (хотя, при использовании SSD можно иногда и не заметить этого), но операционная система будет продолжать работать и использовать swap только для старых данных. В целом, это может быть отличной защитой от переполнения оперативной памяти. Пространство подкачки можно настроить двумя способами, добавив раздел подкачки Linux на диске или создать файл подкачки.

Проверить разделы или файлы подкачки можно такой командой:

~$ sudo swapon --show

1

На данный момент, у меня в системе установлен один раздел и один файл подкачки.

~$ free -h

2

Как можно увидеть, в данный момент в разделе подкачки занто 2 Гб из 15, ОЗУ, соответственно, 5,5 из 7,7.

Как оказалось, я допустил фатальный просчет при установке системы и выделал слишком мало для раздела подкачки, поэтому, дальше я напишу как добавил себе файл подкачки.

Раздел подкачки

Создается в момент установки Linux, можно и позже, наверное, но лучше не усложнять себе жизнь.

installl partitions

Ничего сложного, просто дойдя до этого места, нужно установить размер хотя бы равным объему ОЗУ.

И все, можно забыть, что он есть и жить спокойно.

Файл подкачки

Если вдруг раздел подкачки оказался слишком маленьким, можно добавить еще и файл подкачки, который решит проблему нехватки ОЗУ.

Для начала, нужно проверить наличие свободного места:

~$ df -h

3

Как видно, на /dev/sda5 свободно 50Гб.

Добавлю себе 12ГБ подкачки при помощи команды:

~$ sudo fallocate -l 12G /swapfile

Проверить:

~$ ls -lh /swapfile

4

Видно, что появился файл подкачки на 12ГБ.

5

Вот он, в корневой директории.

Сначала, заблокировать доступ всем кроме рута:

~$ sudo chmod 600 /swapfile

Создать на нем файловую систему:

~$ sudo mkswap /swapfile

Теперь его нужно подключить.

~$ sudo swapon /swapfile

Проверить его работу:

~$ sudo swapon --show

Точно таким же образом можно добавить и раздел подкачки, только вместо /swapfile  буде что-то вроде /dev/sda2

При помощи программы htop можно посмотреть сколько теперь памяти в системе.

61

Данная инструкция точно актуальна для дистрибутивов на базе Ubuntu 2016-2020 годов, возможно и для других тоже.

И еще.

Данные настройки файла подкачки будут действительны до перезагрузки, поэтому, нужно добвить запись в fstab:

~$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Лучше это сделать командой вместо редактирования файла.

Но если решите редактировать, не забудьте сделать перенос после этой строки.