Как добавить swap в Linux Centos на VDS DigitalOcean
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 25853
Комментарии: 4
В виртуальных серверах от компании 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
Для проверки перезагрузите сервер и убедитесь, что файл подкачки подключен к системе.
Как уменьшить размер swap?
Алексей, необходимо удалить старый файл подкачки и создать новый меньшего размера.
После добавления swap он не используется
free -m показывает USED 0
Сергей, это нормально. Значит сейчас в использовании SWAP нет необходимости, то есть серверу для своих нужд хватает оперативной памяти. Проверьте через некоторое время, например через день.