Краткий ответ: Проверьте реальное давление на память через 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…).

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

  1. Оцените реальное давление:
    free -h
    Здорово: available — заметная доля от общего объёма. Проблема: available около нуля и активно используется swap.
  2. Найдите потребителей:
    ps aux --sort=-%mem | head -10
  3. Проверьте события OOM killer:
    dmesg -T | grep -i -E "oom|killed process"
    Если убит MySQL/MariaDB — база перезапустится с пустым кешем и слабой производительностью: классический симптом маленького VPS.
  4. Добавьте swap как предохранитель (если его нет):
    fallocate -l 2G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo '/swapfile none swap sw 0 0' >> /etc/fstab
    Swap спасает от жёстких OOM-падений, но не заменяет RAM — если он в постоянном употреблении, памяти не хватает.
  5. Усмирите крупных потребителей: уменьшите pm.max_children в PHP-FPM, потюньте innodb_buffer_pool_size MySQL (типично 50–60% RAM на выделенном БД-сервере, значительно меньше на общем), перезапускайте приложения с утечками по расписанию.
  6. Всё равно тесно? Расширьте 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 лишь страхует от жёстких падений. Если он используется постоянно, производительность страдает, и серверу действительно нужно больше оперативной памяти.

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

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

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