Ядро Linux предоставляет настраиваемый параметр, который контролирует частоту использования файла подкачки, называемый swappiness
Значение swappiness от нуля означает , что диск не будет предотвращен , если это абсолютно необходимо (вы бежите из памяти), в то время как установка swappiness из 100 означает , что программы будут заменены на диск почти мгновенно.
В системе Ubuntu по умолчанию установлено значение 60, что означает, что файл подкачки будет использоваться довольно часто, если использование памяти составляет около половины моей оперативной памяти. Вы можете проверить значение swapiness вашей собственной системы, запустив:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
Поскольку у меня 4 ГБ ОЗУ, я бы хотел уменьшить это значение до 10 или 15. Файл подкачки будет использоваться только тогда, когда объем используемой памяти составляет около 80 или 90 процентов. Чтобы изменить значение подкачки системы, откройте /etc/sysctl.conf as root
. Затем измените или добавьте эту строку в файл:
vm.swappiness = 10
Перезагрузитесь, чтобы изменения вступили в силу
Вы также можете изменить значение, пока ваша система еще работает
sysctl vm.swappiness=10
Вы также можете очистить своп, запустив его, swapoff -a
а затем swapon -a
от имени root вместо перезагрузки, чтобы добиться того же эффекта.
Для расчета вашей формулы своп
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
итого 3950/100 = 39,5 * 10 = 395
так что это означает, что, когда 10% 395 МБ оперативной памяти осталось, то он начинает использовать swapiness