Задать вопрос

Debian swap vm.swappiness = 0, есть ли подводные камни?

День добрый . Имеем debian 12+ postgres от 1с pro (для размещения баз 1с - небольшой зуп для пары бухов).
Собственно заметил что при свободной оперативке (16 гб ) используется swap.

sysctl -a | grep swappin
vm.swappiness = 60

Получается при занятости оперативки на 40% - начинает использоваться swap.

По идее, нужно изменить значение по умолчанию на 0 - использовать раздел подкачки только если нет места в оперативно памяти ?

Есть ли какие нибудь нюансы ?
  • Вопрос задан
  • 347 просмотров
Подписаться 1 Простой 14 комментариев
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov
Системный администратор
Получается при занятости оперативки на 40% - начинает использоваться swap.

Нет.

vm.swappiness не связан с тем, когда надо использовать swap, более того - это даже не процент оперативки, а соотношение страниц памяти занятых под файловый кеш и анонимных страниц памяти (анонимные это те в которых хранятся данные порождённые в процессе работы программы и не имеющие отображения на диске - переменные грубо говоря).

Если выставить vm.swappiness равным нулю, то сначала будет выгружен на диск весь возможный файловый кеш и только после этого в swap будут выгружены анонимные страницы (а в swap выгружаются только анонимные страницы).

Если vm.swappiness равен 100, то на одну страницу файлового кеша будет выгружена одна старница анонимного кеша в swap.

И в свежих ядрах vm.swappiness может быть выставлен в 200, то есть ситуация диаметрально противоположная vm.swappiness выставленному в 0 - сначала будет сброшен в swap весь анонимный кеш и только потом начнёт выгружаться на диск файловый кеш.

Остав в покое vm.swappiness и прочие параметры ядра пока не разберёшься, с тем что они делают и даже тогда не стоит их трогать - в лучшем случае ничего не измениться, но скорее всего ты сделаешь хуже.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы