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 разделе/файле.