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