Коротка відповідь: Спершу гляньте free -h і читайте колонку available — те, що Linux тримає більшість RAM під кеш, нормально і корисно. Справжня проблема виглядає як мала available памʼять плюс рядки OOM-кілера в dmesg. Знайдіть головних споживачів через ps aux --sort=-%mem | head і перезапустіть сервіс, що тече.
Огляд
Половина тривог «RAM закінчилася!» хибні: кешована памʼять звільняється на вимогу і свідчить, що ядро робить свою справу. Цей чекліст відділяє здорове кешування від справжнього дефіциту памʼяті, який вбиває процеси й заморожує сервери.
Що потрібно мати
- Доступ по SSH або через KVM Console.
Покрокова інструкція
- Прочитайте реальний запас:
Хвилюйтеся лише коли available — мала частка від загального обсягу.free -h - Перевірте, чи ядро вже когось убило:
OOM-кіл пояснює загадково мертві сервіси.sudo dmesg -T | grep -i 'out of memory' sudo journalctl -k | grep -i oom - Перелічіть найважчі процеси:
Типові порушники:ps aux --sort=-%mem | head -10mysqld, завеликі пулиphp-fpm, node-застосунки, панелі керування на малих планах. - Стабілізуйте: перезапустіть сервіс, що тече; довгоживучим PHP/node-воркерам корисна періодична ротація (наприклад, PHP-FPM
pm.max_requests). - Додайте запас міцності: налаштуйте swap, якщо його немає, — він перетворює жорсткі OOM-падіння на мʼяке сповільнення.
- Повторюваний дефіцит при всьому натюненому = навантаженню потрібно більше 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. Ядро логує, який саме процес воно вбило, коли, і стан памʼяті на той момент.
Схожі статті
- Як діагностувати високе використання RAM
- Високе навантаження на CPU: швидка діагностика
- VPS не відповідає: що робити
- Як зібрати логи для підтримки
Потрібна допомога? Звернутися в підтримку Cloud2Y →
