−25%

на річну оплату Windows, до 31.10. До тарифів

EQVPS

Як додати своп-файл на Linux VPS

Створіть своп-файл п'ятьма командами, зробіть його постійним і налаштуйте swappiness — плюс скільки свопу потрібно і коли справжнє рішення — більше RAM.

Маленьким серверам бракує пам'яті в найневдаліший момент: apt upgrade, збірка Docker, нічний бекап. Без свопу OOM killer ядра обирає процес і завершує його — часто вашу базу даних. Своп-файл — дешевий пасок безпеки, який дає цим пікам куди подітися. Потрібно п'ять команд.

1. Перевірте, що є зараз

swapon --show
free -h

Якщо swapon --show нічого не виводить, свопу поки немає.

2. Створіть своп-файл

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

chmod 600 важливий: у свопі можуть опинитися уривки чого завгодно з пам'яті, включно із секретами, тому читати його може лише root. Якщо fallocate лається «operation not supported», використайте dd:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

3. Зробіть його постійним

Без цього кроку своп зникне після перезавантаження:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

4. Налаштуйте swappiness

Попросіть ядро віддавати перевагу RAM і використовувати своп здебільшого за нестачі:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

5. Перевірте

swapon --show
free -h

Має з'явитися пристрій свопу на 2 ГБ, а cat /proc/sys/vm/swappiness має вивести 10.

Якого розміру робити?

Не робіть своп «удвічі більшим за RAM». На сервері своп потрібен, щоб поглинати короткі піки, а не запускати задачі, які не поміщаються в пам'ять.

Коли своп — не рішення

Поспостерігайте кілька днів:

vmstat 5

Колонки si і so показують сторінки, завантажені зі свопу й вивантажені в нього за секунду. Зрідка — нормально. Постійні ненульові значення означають, що пам'яті бракує і все чекає на диск. Тоді рішення — більше RAM: див. скільки RAM потрібно VPS. В EQVPS можна перейти на більший тариф без перевстановлення; дані збережуться.

Пов'язане

Часті питання

Скільки свопу додавати?

На серверах із 1–2 ГБ RAM своп-файл на 1–2 ГБ — добрий стандарт. На більших серверах 1–2 ГБ теж досить як страховки: порада робити своп «удвічі більшим за RAM» — з часів машин на 256 МБ.

Чи прискорить своп сервер?

Ні. Своп лише не дає впасти, коли пам'ять ненадовго закінчується: оновлення пакетів, збірка Docker, бекап. Сторінки пам'яті на диску в тисячі разів повільніші за RAM. Якщо сервер свопиться постійно, йому потрібно більше пам'яті.

Що робить swappiness?

Визначає, наскільки охоче ядро вивантажує незайняту пам'ять у своп. Значення за замовчуванням 60 свопить доволі рано; 10 каже ядру тримати все в RAM і вдаватися до свопу здебільшого за реальної нестачі — більшості серверів це підходить.

Чому своп-файл, а не розділ?

Файл можна створити, змінити й видалити на працюючому сервері за секунди, не чіпаючи таблицю розділів. Продуктивність на сучасних файлових системах така сама.

Як потім прибрати своп?

Виконайте 'swapoff /swapfile', видаліть рядок /swapfile з /etc/fstab, потім 'rm /swapfile'.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.