Поумолчанию результат будет 60.
Это параметр,
который контролирует количество свободной памяти, который контролирует,
при какой загруженности у нас начнется сброс страниц в swap. Ну а дальше
простая формула: 100%-60%=40%, т.е. уже при 40% загруженой ОЗУ
данные начинают активно сливаться на жетский диск, что, как мне кажется,
не есть хорошо. И вероятнее всего вы спросите, нельзя ли сделать так,
чтобы слив начался хотя бы при 90% занятой памяти. И я вам отвечу: да,
можно. Сначала в конфиг /etc/sysctl.conf добавим запись:
vm.swappiness=10
Затем, дабы не перезагружать комп, выполним с правами суперпользователя команду:
sysctl -p
Теперь параметр оперативная память будет выгружаться в своп при достижении 90% занятости.
А сейчас мы снова вернемся к теме, рассмотреной в прошлый раз - к
дисковому кэшу. То, о чем пойдет речь дальше, делайте на свой страх и
риск, я за последствия нести ответственность отказываюсь. =)
Существует такой параметр, как vfs_cache_pressure. Этот параметр
определяет, на сколько ваша операционная система готова держать кэши в
оперативной памяти или же сливать их своп. Посмотреть значение можно
такой командой:
cat /proc/sys/vm/vfs_cache_pressure
Параметры vm.vfs_cache_pressure:
- 0 — не кэшировать ничего.
- 100 — значение по-умолчанию.
- >100 — агрессивно кэшировать дисковые операции.
Знатоки рекомендуют устанавливать значение 1000 и больше для обычных
винчестеров и около 50 для SSD дисков. Чем выше значение
vm.vfs_cache_pressure тем отзывчивей будет система (тем больше будет
кэширование), но это при условии что у Вас достаточно оперативной памяти
(более 2Гб).
Если вы остановились в выборе на каком-то определенном значении, то
впишем его туда же, куда раньше мы прописывали параметр vm.swappiness - в
конфиг /etc/sysctl.conf:
vm.vfs_cache_pressure=1000
Ну и чтобы значения вступили в силу, выполним с правами суперпользователя команду:
sysctl -p
.
На этом тюнинг можно считать законченым. Но у вас наверняка может
возникнуть вопрос: "У меня дофига свободной оперативы, но при этом в
свопе что-то лежит, а я хочу его освободить. Как мне очистить своп?" И
на этот вопрос есть ответ.
Для начала убедитесь, что содержимое свопа не превышает размер свободной
оперативной памяти. Если свободной памяти больше, чем свопа, то на
какое-то время своп просто отключаем командой:
swapoff -a
После чего дожидаемся, когда содержимое свопа перельется в оперативную
память. Обязательно промониторьте это дело любой предпочитаемой вами
утилитой (виджетом, командой free, командой top/htop или что вам больше
по душе). Когда из свопа все перелилось, снова его включаем:
swapon -a