Настройка swap в Linux
Общие сведения
Не стоит злоупотреблять swap, если используется ssd диск. Если машина уходит в swap, стоит найти причину такого поведения и устранить, если такая возможность имеется, так как ssd имеет ограниченное кол-во перезаписей одного сектора, что сильно влияет на срок службы ssd диска.
Проверка swap:
~$ swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
Если вывод отсутствует, значит swap не настроен
Вспомогательная команда free -h, покажет более информативно
Чтобы узнать, есть ли место для swap на жестком диске:
~$ df -h
Файл.система Размер Использовано Дост Использовано% Cмонтировано в
udev 1,9G 0 1,9G 0% /dev
tmpfs 379M 1,5M 378M 1% /run
/dev/sda7 53G 12G 39G 24% /
tmpfs 1,9G 31M 1,9G 2% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
/dev/sda3 511M 4,0K 511M 1% /boot/efi
tmpfs 379M 20K 379M 1% /run/user/1000
Создание файла подкачки
sudo fallocate -l 4G /swapfile
Проверить что файл был создан размером 3gb:
ls -lh /swapfile
Запретить доступ к swapfile всем кроме root:
chmod 600 /swapfile
Создать файловую систему swap:
sudo mkswap /swapfile
После монтирования файла подкачки, необходимо включить его:
sudo swapon /swapfile
Убедиться, что файл включен:
free -h
Добавление swap в автозагрузку
Добавить строку в /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Создание раздела подкачки
Вместо файла используется раздел
sudo mkswap /dev/sda2
В остальном все также как и при создании файла подкачки
Контроль памяти в swap
cat /proc/sys/vm/swappiness
По умолчанию установлено значение 60, но его можно изменить командой и сохранить после перезагрузки опцией -w:
sudo sysctl -w vm.swappiness=80
При значении ближе к 100, система будет пытаться поместить в подкачку больше данных.
Другой важный параметр для подкачки является время хранения данных в кэше:
~$ cat /proc/sys/vm/vfs_cache_pressure
#Изменить значение:
~$ sudo sysctl -w vm.vfs_cache_pressure=100