Сервер гальмує: з чого почати
П'ятихвилинна процедура діагностики: CPU, пам'ять, диск, мережа — як кількома командами визначити, що саме є вузьким місцем, і що робити далі.
Оновлено 23 серпня 2026 р.
«Усе гальмує» — це не діагноз. Є лише чотири вузькі місця: CPU, пам'ять, диск і мережа. Нижче — порядок перевірок, який за п'ять хвилин вкаже на одне з них.
Крок 1: загальна картина
uptime
free -h
df -h
Три команди одразу відкидають половину варіантів. Якщо середнє навантаження помітно вище за кількість ядер на вашому тарифі, є черга — дивіться Load average. available близько до нуля означає пам'ять. Якщо розділ заповнений на 100%, далі шукати нічого — читайте Out of space.
Крок 2: що саме є вузьким місцем
vmstat 2 5
Дивіться на усереднені стовпці, усі, крім першого рядка:
- високі
usіsy, великийr— впирається в CPU; - високий
wa, великийb— впирається в диск; - ненульові
siіso— відбувається свопінг, а отже, бракує пам'яті; - високий
st— час, який забирає гіпервізор, це зовнішня причина, звертайтеся до підтримки.
Крок 3: знайдіть винуватця
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20 # apt install iotop
ss -tn state established | wc -l
Живу картину легше читати в htop або btop. Стежте за процесами в стані D — вони чекають на диск і розганяють навантаження.
Якщо винуватець — ваш застосунок, наступне питання вже про нього: повільні запити до бази даних, відсутній індекс, забагато воркерів, нескінченний цикл після деплою. Зіставте момент початку гальмування з логом:
journalctl --since "1 hour ago" -p warning
Крок 4: перевірте історію
Відкрийте «Overview» у панелі /hosting/vds/m/<id> і подивіться на графіки за останню добу та тиждень. Три типові картини:
- стрибок угору в конкретний момент — щось змінилося: деплой, оновлення, нове завдання cron;
- регулярний пік за розкладом — фонове завдання; перенесіть його на ніч або обмежте через
niceтаionice; - плато без змін тижнями — ви просто переросли свій тариф.
Що робити зі знахідкою
| Вузьке місце | Швидка дія | Довгострокове рішення |
|---|---|---|
| CPU | знайти й зупинити зайвий процес | тариф із більшою кількістю ядер |
| Пам'ять | обмежити воркери й буфери бази даних, додати swap | тариф із більшим обсягом пам'яті |
| Диск | обмежити бекапи через ionice, підрізати логи | вищий тариф: плато зростає разом із кількістю ядер |
| Мережа | обмежити фонові завантаження через --bwlimit | дослідити джерело трафіку |
Плато диска розраховується так: 60 MB/s запису на ядро, не нижче за 60 і не вище за 400, читання — удвічі більше. Якщо ви стабільно на плато, швидшим диск без переходу на вищий тариф не стане — дивіться Benchmark.
Типові помилки
- Одразу перезавантажити машину. Перезавантаження стирає картину, і за годину все повториться. Спершу зберіть цифри.
- Довіряти одному кадру. Сплеск у момент запуску htop нічого не означає — дивіться хвилину.
- Вважати заповнену пам'ять проблемою. Дивіться на
availableі swap, а не наfree. - Змінювати тариф, не розібравшись. Витік пам'яті або зациклений скрипт переїде на новий тариф разом із вами. Повернення на нижчий тариф не підтримується.
Якщо CPU, пам'ять і диск спокійні, а застосунок гальмує, вузьке місце поза машиною: повільний зовнішній API, DNS або мережа клієнта. Перевірте
curl -w '%{time_total}\n' -o /dev/null -sза потрібною вам адресою.