Настраиваем swap в виде файла в Linux - Zhbert's Home Нажмите "Enter", чтобы перейти к контенту

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

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

Что такое swap?

SWAP – один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (отдельный раздел или файл), освобождая ОЗУ для загрузки других активных фрагментов памяти. (с) Ubuntu Help

Или, говоря простым языком, это такое место на жестком диске (или SSD, смотря, что у вас установлено), куда ОС будет складывать неиспользуемые в текущий момент кусочки оперативной памяти, освобождая ее для тех программ, которым ее не хватает.

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

Будьте первым, кто оставит комментарий!

Добавить комментарий

Ваш адрес email не будет опубликован.