Как добавить swap в Linux Centos на VDS DigitalOcean

 3 июля 2013      
 Linux - CentOS      
 комментария 2

В виртуальных серверах от компании DigitalOcean (обзор и тесты здесь) изначально при установке отсутствует swap (раздел подкачки). Который, как известно, необходим, когда системе требуется больше памяти, чем физически доступно. Поэтому исправим такое положение дел и создадим файл подкачки.

Ядро переносит из памяти на диск наименее используемые данные и отдает освободившуюся память тому приложению (процессу) который больше нуждается в памяти. Кроме того, значительное количество страниц памяти задействуется приложениями только во время их загрузки, и может больше не понадобиться. Система может выгрузить такие страницы на диск, освободив тем самым память для других приложений, или даже для дискового кэша.

В Линуксе пространство подкачки бывает двух видов: раздел подкачки (swap partition) и файл подкачки (swap file). В ядрах Linux 2.6 и новее работа swap-файла не уступает по производительности swap-разделу.

Для начала проверим сколько swap пространства имеется у нас в системе:

# swapon -s

В случае со свежеустановленном сервером CentOS от DigitalOcean у Вас должно быть пусто.
Для полной уверенности выполним free:

# free
             total       used       free     shared    buffers     cached
Mem:        502464     490880      11584          0      22408     310004
-/+ buffers/cache:     158468     343996
Swap:            0          0          0

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

# df -h

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

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda               20G  1.7G   17G  10% /
none                  246M     0  246M   0% /dev/shm

Как видим места предостаточно. Самое время создать файл подкачки. Размер файла подкачки вопрос философский. Для начала его нужно сделать равным размеру оперативной памяти и следить за его использованием. При необходимости увеличиваем. На серверах с малым размером оперативной памяти объем swap может быть больше в 2 или 3 раза.
Я для своего сервера с размером оперативной памяти 512 МБ создам файл подкачки такой же величины:

# dd if=/dev/zero of=/swapfile bs=1M count=500
# mkswap /swapfile
# swapon /swapfile

Проверим, что мы натворили:

# swapon -s

Результат:

Filename                                Type            Size    Used    Priority
/swapfile                               file            511992  0       -1

А также по команде free:

# free
             total       used       free     shared    buffers     cached
Mem:        502464     494120       8344          0       3256     378424
-/+ buffers/cache:     112440     390024
Swap:       511992          0     511992

Как видно все замечательно. Но все наши старания пропадут при следующей перезагрузке сервера. Поэтому пропишем необходимые настройки в файлы конфигурации сервера.
Редактируем любым удобным для Вас способом файл /etc/fstab. К примеру так:

# nano /etc/fstab

И добавляем в него следующую строку:

/swapfile          swap            swap    defaults        0 0

Либо одной командой:

# echo -e 'n/swapfile          swap            swap    defaults        0 0' >> /etc/fstab

Сохраняем файл конфигурации.
Далее нам необходимо настроить разрешения на чтение-запись-исполнение, а также указать владельца файла подкачки:

# chown root:root /swapfile 
# chmod 0600 /swapfile

Для проверки перезагрузите сервер и убедитесь, что файл подкачки подключен к системе.



Использованные источники

  1. How to Add Swap on CentOS 6
  2. Файл подкачки: swap-файл и swap-раздел в Linux

 Метки:  , ,

Обсуждение: 2 комментария

  1. Алексей:

    Как уменьшить размер swap?

    Ответить
    1. Алексей, необходимо удалить старый файл подкачки и создать новый меньшего размера.

      Ответить

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Технический блог © 2016
SQL - 42 | 0,162 сек. | 6.99 МБ