Есть ли какие-либо риски при установке vm.swappiness в Debian на значение 0?

Здравствуйте! У меня возник вопрос касательно использования swap при свободном объеме оперативной памяти. Возможно ли улучшить это, изменив значение параметра swappiness с 60 на 0, чтобы раздел подкачки использовался только в случае недостатка оперативной памяти? Есть ли при этом какие-либо тонкие моменты, о которых стоит знать?
  • 25 марта 2024 г. 10:59
Ответы на вопрос 2
Изменение значения параметра vm.swappiness на 0 в Debian может привести к следующим рискам:

1. Риск исчерпания оперативной памяти: Если swappiness установлен на 0, система будет стараться избегать использования раздела подкачки (swap) до последнего, даже если оперативная память начнет исчерпываться. Это может привести к аварийному завершению работы программ или даже к сбою системы из-за нехватки оперативной памяти.

2. Ухудшение производительности: При отсутствии раздела подкачки система может начать использовать место на диске для хранения временных данных, что может привести к замедлению работы программ и процессов.

3. Недоступность функции гарантированной обработки информации: В некоторых случаях рекомендуется держать небольшой объем swap, чтобы обеспечить гарантированную обработку информации, когда оперативная память заполнена.

Перед изменением значения параметра vm.swappiness на 0, убедитесь, что у вас достаточно оперативной памяти и что отключение или снижение использования раздела подкачки не приведет к нежелательным последствиям. Рекомендуется провести тщательное исследование и рассмотреть все возможные последствия перед внесением изменений.
Получается при занятости оперативки на 40% - начинает использоваться swap.

Нет.

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

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

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

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

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