Colobridge WIKI

размер виртуальной памяти swap

Применимость: Linux

Слова для поиска: swap, свап, своп, подкачка, страничный обмен


Обычно рекомендуется выбирать размер swap (раздел виртуальной памяти, подкачка) в 2 раза больше чем объем ОЗУ. А если у вас 128 ГБ ОЗУ в системе, то действительно нужно иметь 256 ГБ подкачки на диске?

Рекомендация о двойном размере swap давно устарела.

Более свежая рекомендация от redhat.com:

If M < 2G
    S = M *2
Else
    S = M + 2G

То есть для конфигурации 128G нужен своп 130G?

- Это тоже слишком много для большинства случаев.

Надо четко понимать как и когда это пространство будет использоваться.

Например, чтобы ноутбук мог засыпать и просыпаться, сохраняя образ памяти на swap, этот объем (M + 2G) необходим.

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

Файловый сервер не будет активно использовать виртуальную память, ему надо физическая память для буферизации.

От сервера баз данных тоже не следует ожидать скачков достигающих сотен гигабайт.

В случае вебсервера, когда приходит множество клиентов и для каждого запускается отдельная копия (fork) демона, памяти не хватает и дополнительные копии демона вытесняются в память swap. Но вытеснение форков существенно замедляет их работу, они очень сильно тормозят, и постепенно соединения отваливаются по превышению времени ожидания и клиенты уходят. Таким образом виртуальная память выполняет роль демпфера при пиковых нагрузках.

Но для вебсервера невозможно представить себе ситуацию когда таким образом будет использовано более нескольких десятков гигабайт памяти swap. Лишние клиенты отвалятся задолго до того как использование памяти swap достигнет 100G.

Потому довольно часто будут уместными такие рекомендации:

  • Для системы с 4 Гб оперативной памяти или менее требуется как минимум 2 ГБ подкачки
  • Для системы от 4 ГБ до 16 ГБ оперативной памяти требуется как минимум 4 Гб подкачки
  • Для системы от 16GB 64 ГБ оперативной памяти требуется как минимум 8 ГБ подкачки
  • Для системы от 64 ГБ до 256 ГБ оперативной памяти требуется как минимум 16 Гб подкачки
  • Для системы от 256 ГБ до 512 ГБ оперативной памяти требуется как минимум 32 Гб подкачки

Если вы заметите увеличение использования swap, то даже если нет возможности изменить размер раздела для swap, можно использовать для этого файл.

Создать пустой файл размером 20G:

dd if=/dev/zero of=/swap1 bs=1G count=20

Создать в файле файловую систему swap:

mkswap /swap1

Установить права доступа и подключить файл к виртуальной памяти:

chown root:root /swap1
chmod 0600 /swap1
swapon /swap1

Добавить строку с параметрами монтирования файла в /etc/fstab

/swap1 swap swap defaults 0 0

Убедиться, что виртуальная память swap расширилась?

free