Swappiness — параметр управления использованием памяти в Linux | Глоссарий FREEHOSTING

Swappiness

Параметр Swappiness
Swappiness — Swappiness — параметр ядра Linux, определяющий склонность системы к использованию файла подкачки (swap) вместо оперативной памяти. Значение варьируется от 0 до 100 и влияет на производительность и отзывчивость системы.

Определение простыми словами

Swappiness – это настройка ядра Linux, которая регулирует, насколько активно система будет использовать файл подкачки (swap) при загрузке памяти. При низком значении swappiness, система старается использовать оперативную память максимально, а своп применяется только при критической нехватке ОЗУ. При высоком значении своп активно используется даже при достаточном объеме свободной оперативной памяти. Это помогает избежать отказов из-за отсутствия памяти, но может замедлить работу из-за обращения к медленному диску.

Параметр swappiness задаётся числом от 0 до 100, где 0 — минимальное использование свопа, 100 — максимальное предпочтение свопу. Обычно по умолчанию стоит значение 60, что подходит для большинства сценариев, но в некоторых случаях полезно менять это поведение для улучшения производительности.

Сравнение

Значение Swappiness Поведение системы Когда использовать
0-10 Минимальное использование свопа; предпочитается оперативная память Системы с большим объемом оперативной памяти или важна максимальная производительность
20-60 Сбалансированное использование оперативной памяти и свопа Общие серверы и рабочие станции для стабильной работы
70-100 Активное использование свопа даже при свободной памяти Системы с ограниченной оперативной памятью, где важно избежать ошибок из-за нехватки памяти

Кейсы использования

  • Настройка сервера баз данных с большим объемом RAM для уменьшения лагов — swappiness ставят 10 или ниже.
  • Виртуальные машины с ограниченной памятью для предотвращения Out-Of-Memory — swappiness повышается до 60-80.
  • Работа контейнеров с переменной нагрузкой — динамическая настройка swappiness для адаптации.
  • Развертывание compute-intensive приложений, где важна отзывчивость — низкий swappiness.
  • Негативный пример: На рабочих станциях со SSD установка слишком высокого swappiness приводит к повышенному износу диска и замедлению работы.

Технические детали

Параметр swappiness можно изменить временно или постоянно:

# Просмотр текущего значения swappiness
cat /proc/sys/vm/swappiness

# Временное изменение значения (до перезагрузки)
echo 10 > /proc/sys/vm/swappiness

# Постоянное изменение в /etc/sysctl.conf
vm.swappiness=10

# Применение изменений
sysctl -p

Swappiness управляет балансом между использованием оперативной памяти и файла подкачки с учётом нагрузок и типа хранения данных. При настройке важно учитывать характеристики оборудования и специфику приложений.

Подробнее об overcommit, балансе памяти и виртуальных машинах в нашем глоссарии.

Частые вопросы

Что такое swappiness?

Swappiness — это параметр Linux, который регулирует, как часто система использует swap вместо оперативной памяти.

Как изменить значение swappiness?

Значение swappiness можно изменить временно через /proc/sys/vm/swappiness или постоянно в файле /etc/sysctl.conf.

Какое значение swappiness считается оптимальным?

Оптимальное значение зависит от задачи, но обычно варьируется от 10 до 60, для балансировки между производительностью и стабильностью.