Нужен ли swap

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

 

 

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

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

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

 

 

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

 

 

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


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

 

 

Используется ли 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% свободной памяти система начнет использовать диск.

 

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

sudo mcedit /etc/sysctl.conf

 

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

sudo sysctl -p

vm.swappiness = 35

 

 

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

Если раздел на диске, который будет использоваться как оперативная память, нужен — его можно добавить по инструкции.