Настраиваем swap в виде файла в Linux | Zhbert’s Home
Zhbert's Home
Домашняя страничка Zhbert'а

Настраиваем swap в виде файла в Linux

Как настроить swap в виде файла в ОС Linux? Такой вопрос может возникнуть в том случае, если к разделам у вас доступа нет, а своп все же нужен. Например, когда я запускал сервис Youtrack на VDS, оперативной памяти, которой там 2 GB, мне хватало впритык, и сервис не хотел нормально стартовать. Выделение дополнительного swap-файла решило эту проблему.

Обычно под swap выделяют отдельный раздел на жестком диске, монтируя его при загрузке системы как swap, в таком случае его еще можно использовать для гибернации (туда будет складываться слепок текущего состояния ОЗУ для последующего «пробуждения» (загрузки)). Отсюда следует одно правило: размер swap раздела должен быть как минимум не меньше, а лучше в два раза больше объема оперативной памяти. Изначально это шло из-за ограничений по ОЗУ на машинах (когда 2Гб памяти явно не хватало), но со временем такое требование ушло в небытие, так как объемы оперативной памяти стали неуклонно расти, и сейчас машиной с 64 Гб ОЗУ уже никого не удивишь.

Итак, для начала нужно проверить, подключен ли swap. Для этого введите следующую команду:

sudo swapon -s

Команда вводится от root-пользователя, либо под sudo. В результате будет показана таблица с текущими подключенными swap разделами или файлами.

Filename  Type  Size Used Priority

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

sudo fallocate -l 1G /swapfile

Эта команда создает в корне системного раздела файл swapfile размером 1 Гб. Далее нужно выделить ему соответствующие права:

sudo chmod 600 /swapfile

Права 600 означают, что права на запись и чтение файла будет иметь только владелец, в данном случае root, так как команда выполняется от него. Создаем swap в этом файле:

sudo mkswap /swapfile

Далее нужно созданный swap активировать:

sudo swapon /swapfile

Если теперь проверить наличие swap, то можно увидеть примерно следующее:

Filename                            Type            Size    Used    Priority
/swapfile                           file            4194300 552192  -2

На этом еще не все. Мы создали и подключили swap-файл, но он еще не подключается автоматически при загрузке системы, то есть при первой же перезагрузке системы своп работать не будет. Для этого нам нужено исправить файл монтирования файловых систем /etc/fstab. Откройте его любым привычным редактором, например

sudo nano /etc/fstab

и добавьте в конец следующую строчку:

/swapfile   none    swap    sw    0   0

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

На этом все, при перезагрузках swap-файл будет автоматически монтироваться в систему.