Сегодня опишем процесс создания swap файла в ОС Ubuntu Sever 18.04. Отводить под swap целый раздел нашего HDD достаточно расточительно, а вот файл — самое то. Всегда можно от него отказаться, или изменить размер, или переложить в другое место. Это достаточно гибко.
Создаём файл нужного размера в подходящем месте. Я буду использовать корень системы:
sudo dd if=/dev/zero of=/swapfile bs=1M count=256
Тут мы создали файл подкачки размером 256 MБ, используя команду dd, как показано ниже. Обратите внимание, что bs = 1M означает чтение и запись до 1 Мбайт за раз, а count = (1 x 256)MB.
А затем установите соответствующие разрешения для файла. Сделайте его доступным только для пользователей root следующим образом:
sudo chmod 600 /swapfile
Теперь настройте файл для пространства подкачки с помощью команды mkswap.
sudo mkswap /swapfile
Включаем swap:
sudo swapon /swapfile
Убедимся, что swap-файл подключился правильно:
sudo swapon -s
Имя файла Тип Размер Исп-но Приоритет
/swapfile file 252 252 -2
Чтобы подключение swap происходило автоматически, добавляем запись в /etc/fstab. Откроем файл:
sudo nano /etc/fstab
И добавим следующий текст
/swapfile none swap sw 0 0
Чтобы установить, как часто файл подкачки может использоваться ядром, откройте файл /etc/sysctl.conf и добавьте следующие параметры.
vm.swappiness = 30
vm.vfs_cache_pressure = 50
- vm.swappiness — влияет на процесс переноса данных в swap при недостатке физической памяти. Большие значения приводят к более активному использованию swap-файла, меньшие по факту не сильно уменьшают использование swap-файла но чуть затягивают процесс перемещения данных в swap (т.е. перенос в swap ядро просто пытается отложить на потом). Значение по умолчанию 60, рекомендуется установить 30.
- vm.vfs_cache_pressure — влияет на то на сколько агрессивно ядро забирает блоки из кеша, который используется для буферизации данных о каталогах и i-node-ов. Это только один из типов кешей, которые ядро использует при работе с диском. А кроме того чем больше значение тем более агрессивно ядро будет забирать страницы из этого кеша.
Готово.
[endtxt]