Краткий ответ: Проверьте реальное давление на память через free -h — смотрите на available, а не «free» (Linux намеренно заполняет RAM кешем). Если available действительно мало, найдите потребителей через ps aux --sort=-%mem | head, проверьте лог ядра на OOM-kill (dmesg | grep -i oom), добавьте swap как буфер и почините или усмирите крупнейшего потребителя.
Обзор
Самая частая жалоба «кончается RAM» — ложная тревога: кешированная память, которую Linux мгновенно отдаёт по необходимости. Настоящее давление выглядит как низкий available, интенсивный swap и OOM killer, убивающий процессы — типично базу данных. Этот гайд разделяет оба случая и лечит настоящий.
Что нужно иметь
- SSH-доступ.
- Базовое представление, что должно работать на сервере (веб-сервер, PHP-FPM, MySQL…).
Пошаговая инструкция
- Оцените реальное давление:
Здорово:free -havailable— заметная доля от общего объёма. Проблема: available около нуля и активно используется swap. - Найдите потребителей:
ps aux --sort=-%mem | head -10 - Проверьте события OOM killer:
Если убит MySQL/MariaDB — база перезапустится с пустым кешем и слабой производительностью: классический симптом маленького VPS.dmesg -T | grep -i -E "oom|killed process" - Добавьте swap как предохранитель (если его нет):
Swap спасает от жёстких OOM-падений, но не заменяет RAM — если он в постоянном употреблении, памяти не хватает.fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab - Усмирите крупных потребителей: уменьшите
pm.max_childrenв PHP-FPM, потюньтеinnodb_buffer_pool_sizeMySQL (типично 50–60% RAM на выделенном БД-сервере, значительно меньше на общем), перезапускайте приложения с утечками по расписанию. - Всё равно тесно? Расширьте RAM — самое дешёвое решение для сайта с базой, переросшего план.
Типичные проблемы
- Паника «RAM использована на 95%»: если
availableв норме — это кеш работает как задумано; действий не нужно. - MySQL умирает по ночам? OOM во время бэкапов/пиковых cron — добавьте swap, уменьшите буферы или добавьте RAM.
- Память растёт бесконечно? Утечка в приложении — запланируйте мягкий перезапуск (таймер systemd), пока ищете причину.
Когда обращаться в поддержку
Если цифры памяти выглядят невозможными для плана или сервер странно ведёт себя после апгрейда, откройте тикет с выводом free -h и ps.
Частые вопросы
Всегда ли 90%+ использования RAM — проблема?
Нет — Linux по замыслу заполняет память кешем. Смотрите колонку available в free -h; проблема — когда available около нуля, а swap работает непрерывно.
Что такое OOM killer?
Механизм ядра, который при исчерпании RAM принудительно завершает крупнейшего потребителя памяти — часто это база данных. Его действия видны в журнале ядра командой dmesg.
Заменяет ли swap покупку дополнительной RAM?
Нет — swap лишь страхует от жёстких падений. Если он используется постоянно, производительность страдает, и серверу действительно нужно больше оперативной памяти.
Похожие статьи
- Как диагностировать высокую нагрузку на CPU
- Как проверить использование CPU, RAM и диска на VPS
- Как расширить ресурсы VPS
- Как установить базовый мониторинг сервера
Нужна помощь? Связаться с поддержкой Cloud2Y →
