среда, 8 октября 2014 г.

How To Add Swap on Ubuntu Linux

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

Данная статья описывает процесс добавления swap файла в linux. Если swap файл уже существует, и необходимо лишь увеличить его размер, можно просто добавить еще один extra swap.

Проверьте существование swap файла


В командной строке на сервере введите и выполните команду:

sudo swapon -s
Пустой список сигнализирует вам о том, что swap файла не существует:

Filename        Type       Size  Used Priority

Если swap файл уже существует, придумайте имя для нового swap файла, отличающееся от имени существующего.

Проверьте систему


Далее нужно проверить, сколько места доступно на жестком диске. В этом примере Swap файл будет занимать 256 Мб на сервере. Введите команду:

df

После этого вам будет показана информация о занятом пространстве на жестком диске:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda        20509308 3033068  16411384  16% /
none                   4       0         4   0% /sys/fs/cgroup
udev              240132       4    240128   1% /dev
tmpfs              50188     328     49860   1% /run
none                5120       0      5120   0% /run/lock
none              250932       0    250932   0% /run/shm
none              102400       0    102400   0% /run/user

В данном случае, в разделе /dev/vda использовано всего 16% от 20 Гб дискового пространства. Можем создать swap файл размером 256 Мб.

Создайте и задействуйте swap файл


Пришло время создать swap файл командой dd (утилита для копирования данных из одного файла в другой):

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

"if='/dev/zero" - файл, из которого копировать информацию. /dev/zero представляет собой источник нулевых байтов в unix системах.
"of=/swapfile" означает имя создаваемого swap файла.

Далее подготавливаем swap файл, создавая для него место в системе:

sudo mkswap /swapfile

На экране появится следующее:

Setting up swapspace version 1, size = 262144 KiB
no label, UUID=90faca87-ad4d-4a70-bc80-c1cab1c88fbd

Завершаем все активацией swap файла:

sudo swapon /swapfile

Теперь, выполнив команду swapon -s можно посмотреть только что добавленный swap файл:

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

Этот файл будет существовать на сервере, пока он не будет перезапущен. Чтобы этого избежать добавьте следующее в fstab файл.

Откройте файл:

sudo vim /etc/fstab

Допишите следующую строку:

/swapfile none swap sw 0 0


И конечно же защитите файл от чтения и записи пользователями:

sudo chown root:root /swapfile
sudo chmod 0600 /swapfile

Интенсивность использования swap файла


За интенсивность использования swap файла системой отвечает параметр swappiness, принимающий значение от 0 до 100. Если он равен 0, то swap используется только в случае крайней необходимости, например, когда загруженность ОЗУ равна 100%. Если он равен 100, то swap используется с наибольшим приоритетом.

По умолчанию swappiness равен 60. Можно отдать меньший приоритет, чтобы предотвратить утечку памяти во время использования swap файла.

Выполните команды:

echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf