Блог

Інструкції, посібники й новини про продукт.

Посібники

Сервер став повільним: як перевірити RAM, CPU і диск

2 листопада 2026 5 хв читання
Поділитися записом

Якщо ваш сервер сповільнився, перевірте три речі: RAM, CPU і диск. Підключіться й виконайте три команди: free -h для пам’яті, top для процесора й df -h для диска. Що з трьох заповнене, те й вузьке місце. Якщо всі три в нормі, проблема зазвичай у самому застосунку.

Почніть із навантаження

Середнє навантаження (load average) — це середня кількість процесів, що чекають на CPU або диск. Перші три числа у виводі нижче — середні за останні 1, 5 і 15 хвилин. Порівняйте їх із кількістю ядер:

cat /proc/loadavg

nproc

Якщо навантаження довго лишається вищим за кількість ядер, сервер не справляється з роботою.

RAM: free -h

free -h

Найважливіший стовпець — Доступно. Якщо там дуже мало, а рядок Swap заповнюється, RAM вичерпано. Коли пам’ять закінчується, ядро завершує один із процесів, що найбільше її використовують (OOM killer). Часто на це вказує база даних чи вебзастосунок, що закривається сам. Перевірте так:

sudo dmesg -T | grep -i -E "out of memory|killed process"

CPU: top

top

На екрані, що відкрився, клавіша P сортує процеси за використанням CPU, а клавіша M — за використанням пам’яті. Щоб вийти, натисніть q. У рядку CPU вгорі зверніть увагу на таке:

  • us: частка користувацьких процесів. Якщо вона висока, застосунок з’їдає CPU.
  • wa: час очікування вводу й виводу диска. Якщо він високий, проблема не в CPU, а в диску.
  • st: час, «вкрадений» у віртуального сервера, тобто час, який рівень віртуалізації віддав CPU комусь іншому. Якщо він лишається високим, проблема може бути не всередині вашого сервера. Тоді зверніться до підтримки.

Диск: df -h

df -h

df -i

Перша команда показує зайняте місце, а друга — ліміт кількості файлів (inodes). Коли диск заповнений повністю, бази даних і застосунки не можуть записувати, а сервер сповільнюється або видає помилки. З’ясуйте, що займає місце:

sudo du -xh / --max-depth=1 2>/dev/null | sort -h | tail -n 8

Якщо системні журнали розрослися, їх можна зменшити командою sudo journalctl --vacuum-size=200M. Якщо ви користуєтеся Docker, docker system df показує місце, зайняте образами й контейнерами, а docker stats --no-stream — скільки CPU та пам’яті використовує кожен контейнер.

Симптом, імовірна причина та рішення

СимптомІмовірна причинаЩо робити
Сторінки час від часу повільні, Доступно мало, swap заповненийНе вистачає RAMВимкніть непотрібні служби та зменште налаштування пам’яті застосунку (наприклад, кількість працівників PHP-FPM чи пам’ять бази даних). Якщо цього недостатньо, збільште сервер.
Служба закривається сама, у виводі dmesg з’являється «killed process»Пам’ять закінчилася, і втрутився OOM killerДодайте RAM або зменште використання пам’яті.
Один процес у top постійно повністю займає ціле ядроЗавислий процес, несправний плагін або циклЗнайдіть процес, а потім виправте або вимкніть застосунок чи плагін, що за ним стоїть.
Навантаження високе, CPU простоює, wa високийОчікується диск (інтенсивний запис або swap)Подивіться стовпці si і so у виводі vmstat 1 5. Якщо swap використовується, додайте RAM.
df -h або df -i показує повне заповненняЗакінчилося місце на диску або inodesОчистьте великі файли й журнали. Якщо він і далі заповнюється, збільште сервер.
st лишається високимПроблема може бути поза вашим серверомЗверніться до підтримки.

У Seturack швидкість диска кожного сервера обмежена: постійне читання 500 МБ/с і 20 000 IOPS, запис 200 МБ/с і 8000 IOPS. Якщо ваші значення у виводі iostat -x 1 5 сягають цих цифр, повільність спричиняє навантаження на диск. Зменште обсяг роботи кешуванням або розподіліть її в часі. Якщо iostat немає, встановіть його командою sudo apt install -y sysstat.

Коли допомагає swap?

Swap використовує диск замість RAM. Він дає серверу переживати короткі стрибки пам’яті без OOM killer, але не такий швидкий, як RAM. Якщо si і so у виводі vmstat 1 5 лишаються вищими за нуль, сервер постійно пише у swap. Тут допоможе RAM, а не swap. Якщо swap немає (swapon --show нічого не виводить) і ви хочете згладити стрибки, можна додати файл swap на 2 ГБ. Ці команди призначені для файлової системи ext4:

sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile

sudo mkswap /swapfile && sudo swapon /swapfile

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Якщо ресурси в нормі

Якщо RAM, CPU і диск виглядають комфортно, подивіться назву верхнього процесу в top:

  • Якщо вгорі php-fpm, apache2 або nginx, проблема зазвичай у самому сайті: важкий плагін, відсутнє кешування чи раптовий приплив відвідувачів.
  • Якщо вгорі mysqld або mariadbd, є повільні запити. Увімкніть журнал повільних запитів бази даних і подивіться, які запити тривають довго.
  • Якщо невідомий вам процес постійно їсть CPU, сервер могли зламати. Змініть паролі, перевірте відкриті сеанси та вивід sudo ss -tulpn і за потреби перевстановіть сервер із чистою системою.

Коли збільшувати сервер

Порядок такий: спершу налаштуйте, додайте кешування, вимкніть непотрібну роботу. Якщо навантаження після цього все ще високе, збільште сервер. У панелі відкрийте вкладку Розмір свого сервера, пересуньте повзунки на новий розмір і підтвердьте. Після оплати сервер сам один раз перезапускається й повертається вже в новому розмірі. Ваша IP-адреса й дані залишаються тими самими, а платите ви лише різницю за дні, що залишилися. RAM, vCore і диск можна збільшувати окремо, тож підвищуєте лише те, чого бракує. Збільшення збільшує диск, а зменшення диск не стискає. Докладніше читайте в статті про зміну розміру.

Якщо через навантаження сервер взагалі не відповідає, SSH може не підключатися. Тоді відкрийте консоль VNC у панелі або перезапустіть сервер із панелі.

Коментарі0

Коментарів поки немає

Поділіться своєю думкою першим.

Долучайтеся до обговорення

Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.

Не пропускайте нові записи

Отримуйте наші свіжі інструкції, посібники та новини продукту на пошту.

Ви підписалися на нашу розсилку.