Создание swap-файла в Centos 7

Началась история с попытки установить Laravel на слабенькую виртуалку. Стандартная команда composer'а начинала работать, что-то делала и потом выдавала "killed". В результате поиска причины выяснил, что скорее всего не хватает оперативной памяти, из-за чего процесс аварийно завершается. Что делать? Иcпользовать SWAP.

Для начала имеет смысл проверить, включено ли использование swap в системе, а также выяснить общую ситуацию с памятью.

alex@akmurzin:~
swapon -s
free -h
              total        used        free      shared  buff/cache   available
Mem:           488M        155M         72M         28M        261M        270M
Swap:             0           0        858M

Опция -h команды free позволяет показать расход оперативной памяти в человекочитаемом формате, то есть автоматически определяет наиболее удобные единицы измерения. В моём случае всего (total) в распоряжении имеется 488 мегабайт оперативки, чего и не хватало для нормальной работы composer, он требует около 800Мб.

Поскольку swap действительно нужен, то переходим к его созданию. Для этого создаём файл желаемого размера. Я, например, вырал имя /swap в корне и объём 1 Гб. После этого выдаём (а вернее отнимаем) необходимые права на файл, инициализируем его использование и проверяем результат.

alex@akmurzin:~
sudo fallocate -l 1G /swap
sudo chmod 600 /swap
ls -lh /swap
-rw-------. 1 root root 1.0G Nov 27 06:01 /swap
sudo mkswap /swap
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=03b8edff-20d7-4137-a65f-ae5708c5948h
sudo swapon /swap

Настройка закончена, можно проверить результат.

alex@akmurzin:~
swapon -s
Filename                                Type            Size    Used    Priority
/swap                                   file         1048572   169540   -1
free -h
              total        used        free      shared  buff/cache   available
Mem:           488M        154M         71M         28M        262M        270M
Swap:          1.0G        165M        858M

Финальный аккорд. Файл надо закрепить, чтобы он автоматически исползовалися и после перезагрузки. Для этого воспользуемся командой fstab, в открывшемся редакторе надо будет дописать внизу одну строку.

alex@akmurzin:~
sudo vim /etc/fstab
/swap   swap    swap    sw  0   0

После этого памяти стало хватать, composer успешно завершил свою работу и смог поставить все требуемые зависимости.

Инструкция по настройке swap взята из статьи на DigitalOcean.