Краткий ответ: Сначала посмотрите free -h и читайте колонку available — то, что Linux держит большую часть RAM под кэш, нормально и полезно. Настоящая проблема выглядит как малая available память плюс строки OOM-киллера в dmesg. Найдите главных потребителей через ps aux --sort=-%mem | head и перезапустите текущий сервис.

Обзор

Половина тревог «RAM закончилась!» ложные: кэшированная память освобождается по требованию и говорит, что ядро делает своё дело. Этот чек-лист отделяет здоровое кэширование от настоящего дефицита памяти, который убивает процессы и замораживает серверы.

Что нужно иметь

  • Доступ по SSH или через KVM Console.

Пошаговая инструкция

  1. Прочитайте реальный запас:
    free -h
    Беспокойтесь только когда available — малая доля от общего объёма.
  2. Проверьте, не убило ли ядро уже кого-то:
    sudo dmesg -T | grep -i 'out of memory'
    sudo journalctl -k | grep -i oom
    OOM-килл объясняет загадочно мёртвые сервисы.
  3. Перечислите самые тяжёлые процессы:
    ps aux --sort=-%mem | head -10
    Типичные нарушители: mysqld, слишком большие пулы php-fpm, node-приложения, панели управления на малых планах.
  4. Стабилизируйте: перезапустите текущий сервис; долгоживущим PHP/node-воркерам полезна периодическая ротация (например, PHP-FPM pm.max_requests).
  5. Добавьте запас прочности: настройте swap, если его нет, — он превращает жёсткие OOM-падения в мягкое замедление.
  6. Повторяющийся дефицит при всём настроенном = нагрузке нужно больше RAM; обновите план.

Типичные проблемы

  • MySQL убивается каждую ночь: классический OOM-паттерн на малых VPS во время бэкапов — уменьшите буферы или добавьте swap.
  • Слишком большой пул PHP-FPM: pm.max_children × память на воркер должно умещаться в RAM.
  • Вообще нет swap: один всплеск трафика может OOM-нуть базу; даже 1–2 GB swap поглощают пики.

Когда обращаться в поддержку

Если использование памяти значительно больше суммы ваших процессов, или сервер зависает при достаточной available-памяти, — откройте тикет с free -h, выдержками OOM и временными метками.

Частые вопросы

Linux показывает почти ноль свободной памяти — это проблема?

Обычно нет: Linux намеренно использует простаивающую RAM под дисковый кэш и освобождает её по требованию. Оценивайте дефицит по колонке available в free -h и OOM-сообщениям, а не по колонке free.

Как подтвердить, что OOM-киллер остановил мой сервис?

Поищите в сообщениях ядра: dmesg -T | grep -i "out of memory" или journalctl -k. Ядро логирует, какой именно процесс оно убило, когда, и состояние памяти на тот момент.

Похожие статьи

Нужна помощь? Связаться с поддержкой Cloud2Y →

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)