Это поведение контролируется с помощью параметра ядра, называемого vm.swappiness
, который может быть установлен в диапазоне от 0 до 100. Значение по умолчанию, равное 60, приведет к некоторой перестановке системы до того, как физическая память будет полностью заполнена, что поможет поддерживать производительность под давлением памяти, при этом не сильно меняя местами, что приведет к снижению производительности из-за сбоя.
Это можно отключить, установив swappiness на 0, и в этом случае система не будет менять местами без крайней необходимости. Это может иметь смысл, если у вас обычно много свободной оперативной памяти. Тем не менее, производительность упадет с обрыва в тот момент, когда физическая память вашей системы будет полностью заполнена, так как система внезапно будет вынуждена поменяться в неподходящее время, когда приложению требуется память, а не заранее, и это не рекомендуется в вашем случае в качестве вашего сервера бежит близко к полному.
Вероятно, для вас лучше установить значение swappiness на низкое (но ненулевое) значение, например 10, что уменьшит ненужную подкачку, не дожидаясь последнего момента, чтобы освободить ОЗУ, когда программе это необходимо. Наилучшая настройка зависит от вашей среды, поэтому экспериментируйте с различными настройками, пока не получите наилучшие результаты.
Чтобы изменить настройку swappiness, запишите желаемое значение в /proc/sys/vm/swappiness
используя echo
качестве пользователя root. Чтобы внести постоянные изменения, добавьте строку vm.swappiness
в /etc/sysctl.conf
(замените 10 нужным значением при необходимости):
vm.swappiness = 10