Если вам не хватает оперативной памяти, то можно добавить файл подкачки. Если не хватает оперативной памяти с имеющимся разделом подкачки, то можно
- создать большой файл подкачки и использовать только его
- создать дополнительный файл подкачки и использовать его вместе с уже имеющимся разделом подкачки
Причём, здесь я покажу как работать именно с файлом подкачки, а не с разделом подкачки. Плюс этого метода — не нужно менять разметку дисков, создавать новые разделы, а для включения/отключения раздела подкачки даже не нужно перезагружать систему.
Начнём с того, что проверим, какой размер раздела подкачки у системы в данный момент:
swapon --show
Итак, имеется раздел подкачки /dev/sda5 размером 4,9G.
Допустим, мне этого мало и я хочу, чтобы файл подкачки был размером 10 Гигабайт. Этот файл будет располагаться в корне файловой системы — то есть там должно быть достаточно место для размещения этого файла.
Создаю сам файл, который будет использоваться в качестве файла Swap (подкачки):
sudo fallocate -l 10G /swapfile
Устанавливаем правильные права доступа:
sudo chmod 600 /swapfile
Форматируем этот файл в swap:
sudo mkswap /swapfile
И включаем новый файл подкачки:
sudo swapon /swapfile
Проверяем ещё раз:
swapon --show
У нас по-прежнему сохранился раздел подкачки /dev/sda5, а также появился файл подкачки /swapfile размером 10G.
Поле PRIO это приоритет, и оно показывает, что в первую очередь будет использоваться раздел подкачки /dev/sda5, а если он переполнен, то будет использоваться файл подкачки /swapfile — такое поведение можно изменить.
Чтобы новый файл подкачки использовался при каждом включении компьютера, нужно открыть файл /etc/fstab:
sudo gedit /etc/fstab
И добавить тута строчку:
/swapfile none swap defaults 0 0
Обратите внимание, что в моём файле уже есть строка:
UUID=176a8bbf-394e-457f-9d37-8c4edb8064af none swap sw 0 0
Если у вас есть раздел подкачки, то у вас будет такая же строка, только значение UUID будет другим. Если вы не хотите, чтобы использовался исходный раздел подкачки, то просто удалите эту строку.
Либо вы можете оставить оба раздела/файла подкачки, но изменить их приоритет.
Для этого используйте параметр pri=, например так:
/swapfile none swap defaults,pri=100 0 0
/dev/sda1 none swap defaults,pri=10 0 0
Или установить значения приоритета в командной строке:
sudo swapoff /swapfile
sudo swapon --priority 100 /swapfile
В результате получаем:
Для удаления файла swap его нужно в начале отключить, а затем он может быть удалён:
sudo swapoff /swapfile
sudo rm -f /swapfile
Далее удалите соответствующие строку из файла /etc/fstab.
Стресс-тестирование системы в сценарии исчерпания всей оперативной памяти: Как проверить использование файла подкачки в Linux
Если файл подкачки нужен вам эпизодически, то есть редко, то вам необязательно держать большой файл подкачки в системе, вы можете использовать диспетчер динамического пространства подкачки Swapspace. Данная служба будет следить за расходом оперативной памяти и в случае необходимости создавать файлы подкачки. Подробности смотрите в статье: Динамические файлы подкачки создаются только когда нужны