Создание Swap файла на 2 ГБ в Linux: спасение сервера от Out of Memory
Серверу не хватает оперативной памяти (OOM Killer)
На недорогих серверах с 1 ГБ RAM сборка фронтенда (npm build), компиляция или запуск MySQL приводят к зависанию: ядро Linux вызывает Out of Memory (OOM) Killer и принудительно убивает самые прожорливые службы. Решение — создать Swap-файл (виртуальную подкачку на SSD диске).
Симптомы нехватки RAM
Out of memory: Killed process 2145 (mysqld) total-vm:1845920kB, anon-rss:751240kB Создание файла подкачки на 2 ГБ за 4 шага
- Выделяем место под файл на диске:
sudo fallocate -l 2G /swapfile # Если fallocate не поддерживается: sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 - Устанавливаем строгие права доступа (только для root):
sudo chmod 600 /swapfile - Форматируем файл в пространство Swap и активируем его:
sudo mkswap /swapfile sudo swapon /swapfile - Добавляем автозапуск подкачки после перезагрузки сервера:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab - Проверяем статус:
free -h
В строке Swap: должно появиться значение 2.0Gi.
Частые вопросы (FAQ)
Какой объем swap рекомендуется создавать?
Для серверов с RAM до 2 ГБ делайте swap равным объему RAM x2. Для серверов с 8+ ГБ достаточно 4 ГБ подкачки.
Как настроить частоту использования Swap (swappiness)?
Установите swappiness=10 в /etc/sysctl.conf, чтобы система использовала медленный диск только в крайних случаях.
Как безопасно удалить файл подкачки?
Выполните: sudo swapoff /swapfile, удалите строку из /etc/fstab и сотрите сам файл: sudo rm /swapfile.
Замедлит ли swap работу сайта?
Чтение с SSD медленнее RAM, но swap защищает сервер от фатального падения базы данных.