WebWost WebWostbeta

Swap-файл на VDS

Создание swap-файла на VDS с виртуализацией KVM и XEN

Al-Sher

Всем привет. Совсем недавно я увидел, что моя оперативка "забита" и меня это немного за тревожило: С прошлого сервера мне пришлось уйти именно из-за нехватки оперативки. Я начал обдумывать запасные варианты, так как я не хотел снова встречаться с падающей БД...

Изначально я принял меры контроля нагрузки приложениями, то есть стал логгиоровать нагрузку. Вроде там ничего страшного я не заметил: Процессор использовался по минимуму; количество свободной оперативной памяти не уменьшалось, не увеличивалось; uptime сервера был 100%. Вроде бы всё хорошо, но что если новое приложение для nodeJS или сайт начнут поедать оставшиеся 90МБ оперативной памяти?

Раньше, в случае нехватки оперативной памяти, я увеличивал swap раздел, однако сейчас, так как используется VDS, было принято использовать swap-файл.

Итак, давайте же приступим. Ну как всегда начнем с цитаты википедии, а вернее с рассказа о том, что такое swap и для чего он нужен:

Подкачка страниц (англ. paging; иногда используется термин swapping от swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (жёсткий диск или другой внешний накопитель, такой как флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

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

Давайте приступим к созданию swap файла.

Для начала нам необходимо зайти под root`ом на наш сервер.

Теперь создадим файл, который будет использоваться как swap-файл:

dd if=/dev/zero of=/swap.file bs=1M count=512

Тут мы копируем нули в файл swap.file, расположеный в корне нашего сервера, записывая за раз туда 1МБ 512 раз. То есть мы создаем нулевой файл размером в 512МБ. В результате выполнения данной команды вы получите примерно такой ответ:


Давайте теперь запретим доступ к файлу всем пользователям, кроме root:

chmod 600 /swap.file

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

Давайте теперь подготовим файл к работе, то есть форматируем его:

mkswap /swap.file

Если всё нормально и никаких 'Error' не выскакивает, то можно продолжать.

Файл мы подготовили, но как заставить систему подхватить данный swap-файл? Ответ прост: В linux`е имеется файл fstab, который содержит информацию о различных файловых системах. 

Давайте добавим наш swap-файл в fstab. Для этого откроем файл, например, с помощью nano:

nano /etc/fstab

Там уже будут различные строчки, нам же следует добавить в самом конце следующую информацию:

/swap.file      swap            swap    defaults        0       0

Не буду вдаваться в подробности описания данной строчки, ведь основная информация и так понятна. Давайте лучше активируем наш swap-файл. Для этого выполняем следующую команду:

swapon /swap.file

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

free -m

Которая расскажет о размерах оперативной памяти и swap разделе/файле.

0 Комментариев

Новый комментарий