Как настроить 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-файл будет автоматически монтироваться в систему.