Применимость: 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.
Потому довольно часто будут уместными такие рекомендации:
Если вы заметите увеличение использования 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
—- Актуальность: 2013/02/12 13:01