Нужен ли SWAP


SWAP — область диска, которая выделяется системой и используется как оперативная память (RAM). Нужен ли SWAP в конкретном случае можно решить основываясь на информации о текущей или планируемой нагрузке.



Как определить нужен ли SWAP на уже эксплуатируемом сервере


SWAP в существующей инсталяции стоит использовать тогда когда памяти не хватает и увеличить её объем физически нет возможности и при этом на диске есть запас по свободному месту.

Таком бывает на физических и виртуальных серверах. Неиспользуемое дисковое пространство может уже быть в наличии. RAM нужно дополнительно покупать и подключать или менять тариф в случае с виртуальными серверами.



Для новых серверов SWAP использовать обычно нецелесообразно. Исключением могут быть окружения которых бывают кратковременные нерегулярные всплески нагрузки по памяти.

В таких окружениях можно подключить SWAP, он будет использоваться при всплесках. Рассмотренные далее минусы в этом случае будут сказываться минимально. Необходимость в большом количестве RAM (которая в основном простаивала бы) отпадёт.



Минусы SWAP

  • RAM быстрее постоянной памяти, т.е. даже если система задействует раздел на диске операции будут выполняться медленнее по сравнению с такими же, для которых RAM.

  • SWAP лучше не применять с SSD дисками. Виртуальная память предполагает частые к ней обращения, если это RAM операции происходят быстро, их количество и частота на сроке службы компонентов не сказывается. Если же с очень большой частотой что-либо записывать на SSD диск и удалять с него — срок службы сокращается.


Плюсы SWAP

  • SWAP можно использовать для того, чтобы уменьшить расходы на содержание сервера. Особенно если приложение потребляет значительное количество памяти, файлы при этом не занимают много места.



Историческая справка


SWAP часто использовался когда стоимость дисков была значительно меньше стоимости оперативной памяти. Когда серверу не хватало — он начинал использовать выделенный для этого объем на диске. По факту задействовалось больше памяти, чем есть в наличии.

В настоящее время стоимость RAM сильно уменьшилась и заметной экономии не получается. Поэтому применение ограничено.



В общем случае учитывая дешевизну RAM SWAP использовать не следует, операции в любом случае будут выполняться не максимально быстро, также будет расходоваться ресурс диска.



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

free -m

total used free shared buff/cache available
Mem: 1870 1218 131 147 520 555
Swap: 1903 0 1903


В примере команда выполнена в Desktop системе с Ubuntu и по умолчанию подключен SWAP, при этом он не задействуется поскольку памяти хватает. В колонках total и free значение 1903, в колонке used — 0



При каком потреблении памяти система должна задействовать SWAP определяется параметром swappiness.  В Ubuntu это 40%, т.е. как только будет оставаться менее 40% свободной памяти система начнет использовать диск.



Значение можно поменять

mcedit /etc/sysctl.conf



От имени суперпользователя нужно выполнить sysctl -p чтобы изменения вступили в силу

sudo sysctl -p

vm.swappiness = 35



На Ubuntu сервере все значения изначально будут в большинстве случаев нулевыми.


SWAP можно подключить двумя способами:

  • как файл подкачки (применяется в существующих инсталяциях когда понадобился SWAP)
  • как раздел подкачки (применяется для новых серверов при вводе их в эксплуатацию, настройки сложнее, но есть возможность выделить отдельный диск)
Сказать спасибо