Создание swap файла в Ubuntu. Оптимизация

Всем привет! В этой статье я опишу процесс оптимизации сервера через создание swap файла в Ubuntu. У кого наблюдается нехватка оперативной памяти на сервере – читайте далее.

SWAP – это специальный раздел на диске или файл в который операционная система перемещает отдельные блоки оперативной памяти в случае когда оперативной памяти не хватает для работы приложений. Подробнее о механизме подкачки страниц можно почитать в википедии.

Проверим наличие файла swap в системе

Прежде чем начать, проверим, не был ли создан ли swap файл в системе до нас. Выполним команду:

sudo swapon -s

Если в результате получим такую пустую таблицу:

Filename                Type        Size    Used    Priority

…то значит swap файл не создан. Альтернативный вариант проверки:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        154       3799          0          8         83
-/+ buffers/cache:         62       3890
Swap:            0          0          0

Эта команда показывает использование памяти. Как видим, для swap ничего не выделено, т.е. он не используется.

Проверим свободное место на жестком диске

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

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  312K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

Из первой строчки видно, что в наличии есть 55 Гб свободного места. Отлично!

Насчет размера swap файла есть множество мнений, он зависит от потребностей ваших сайтов/приложений, размещенных на сервере. В общем случае достаточно будет файла того же размера, что и размер оперативной памяти. В моём случае это 4 Гб.

Создаем файл swap

Чтобы выполнить создание swap файла в Ubuntu с названием swapfile и размером 4 Гб, воспользуемся следующей командой:

sudo fallocate -l 4G /swapfile

Файл появится в корневой директории (/). Проверим что файл создался корректно:

ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Apr 02 17:09 /swapfile

Всё отлично – двигаемся дальше.

Активируем файл swap

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

sudo chmod 600 /swapfile

Проверим права:

ls -lh /swapfile
-rw------- 1 root root 4.0G Apr 02 17:10 /swapfile

Теперь создадим swap:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944

…и активируем его:

sudo swapon /swapfile

Готово! Повторим проверку наличия swap файла:

sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        4194300 0       -1

Swap файл был настроен успешно и система теперь может его использовать.

Делаем swap постоянным

Мы успешно добавили файл swap, но после перезагрузки система его автоматически не подключит. Чтобы подключать swap автоматически, откроем файл fstab:

sudo nano /etc/fstab

В конце этого файла добавим строчку:

/swapfile   none    swap    sw    0   0

Сохраняем файл. Теперь swap будет включаться автоматически.

Заключение

Создание swap файла в Ubuntu

Создание swap файла в Ubuntu полезно при небольшой нехватке памяти и поможет избежать некоторых распространенных проблем, например падения сервера MySQL. Но лучше конечно проапгрейдить ваш сервер, чтобы точно избежать проблем с ОЗУ  🙂

429