SWAP — файл подкачки в Linux

Порой при малом количестве оперативной памяти Linux система стает «колом» при отстутсвии свободной оперативной памяти. Система может «провисеть» не подавая признаков жизни около минуты пока подсистема OOM Killer (out of memory) не «прибъет» наименее важный процесс и не освободит память. Но не все мы любим «фризы» и избавиться от таких ситуаций при малом количестве оперативной памяти но «прожорливых» приложениях поможет swap-файл.

Уже достаточно давно в Linux не требуется отдельная файловая система под swap и его можно примонтировать файлом. Что достаточно удобно и всегда можно изменить размер swap. Давайте попробуем создать файл подкачки, это займет не больше минуты.

Проверяем что у нас со свопом на текущий момент, тут нам помогут команды free -h или swapon —show:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       8,0Gi       472Mi       1,7Gi       6,8Gi       5,3Gi
Swap:         975Mi       956Mi        19Mi

$ swapon --show
NAME      TYPE      SIZE   USED PRIO
/dev/dm-1 partition 976M 956,8M   -2

Видим что на текущий момент у нас есть раздел swap размером 1ГБ и и свободное место там скоро закончится. Chrome с большим количеством открытых вкладок штука прожорливая

Для создания файла подкачки можно воспользоваться командой fallocate или старой и всеми известной dd

root@DM:/# fallocate -l 4G /swapfile
#или
root@DM:/# dd if=/dev/zero of=/swapfile bs=1M count=4096

Как видно из приглашения строки команда запускается от рута.

Ограничим права на чтение данного файла и отформатируем его в подкачку

root@DM:/# chmod 600 /swapfile 
root@DM:/# mkswap /swapfile 
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=184b9acd-1159-4b98-b216-d9dd5629d211

Все, файл подкачки готов. Осталось его включить и проверить что все работает. Команды для включения и отключения подкачки swapon или swapoff

root@DM:/# swapon /swapfile 
root@DM:/# free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       8,0Gi       488Mi       1,6Gi       6,8Gi       5,3Gi
Swap:         5,0Gi       956Mi       4,0Gi
root@DM:/# swapon --show
NAME      TYPE      SIZE   USED PRIO
/dev/dm-1 partition 976M 961,6M   -2
/swapfile file        4G     0B   -3

Как видно файл подкачки активирован и работает. При желании его можно добавить в /etc/fstab дабы он грузился при старте системы. Для этого в fstab добавляем следующую строку

/swapfile none swap defaults,discard 0 0

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

[Голосов: 1 Средний бал: 5]