Машина тормозит: с чего начать
Порядок диагностики за пять минут: процессор, память, диск, сеть — как за несколько команд определить, что именно упирается, и что делать дальше.
Обновлено 23 августа 2026 г.
«Всё тормозит» — не диагноз. Узких мест всего четыре: процессор, память, диск и сеть. Ниже порядок проверки, который за пять минут указывает на одно из них.
Шаг 1: общая картина
uptime
free -h
df -h
Три команды сразу отсекают половину вариантов. Средняя нагрузка заметно выше числа ядер вашей ступени — очередь есть, см. Средняя нагрузка. available близко к нулю — память. Раздел заполнен на 100 % — дальше можно не искать, читайте Кончилось место.
Шаг 2: что именно упирается
vmstat 2 5
Смотрите усреднённые колонки, кроме первой строки:
- высокие
usиsy, большаяr— упирается процессор; - высокий
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: сверьтесь с историей
Откройте «Обзор» в панели /hosting/vds/<id> и посмотрите графики за сутки и неделю. Три типичных рисунка:
- ступенька вверх в конкретный момент — что-то изменилось: выкатка, обновление, новое задание в cron;
- регулярный пик по расписанию — фоновая задача, перенесите её на ночь или ограничьте
niceиionice; - ровная полка неделями — вы просто выросли из ступени.
Что делать с находкой
| Узкое место | Быстрое действие | Долгое решение |
|---|---|---|
| Процессор | найти и остановить лишний процесс | ступень с большим числом ядер |
| Память | ограничить воркеры и буферы базы, добавить swap | ступень с большим объёмом памяти |
| Диск | ограничить бэкапы ionice, урезать журналы | ступень выше: полка растёт с числом ядер |
| Сеть | ограничить фоновые загрузки --bwlimit | разбор источника трафика |
Полка по диску считается так: 60 МБ/с записи на ядро, не ниже 60 и не выше 400, чтение вдвое выше. Если вы стабильно на полке, диск быстрее не станет без перехода вверх, см. Замер скорости.
Частые ошибки
- Перезагружать машину сразу. Перезагрузка стирает картину, и через час всё повторится. Сначала соберите цифры.
- Верить одному кадру. Пик в момент запуска htop ничего не значит, наблюдайте минуту.
- Считать заполненную память проблемой. Смотрите
availableи подкачку, а неfree. - Менять тариф не разобравшись. Утечка памяти или зациклившийся скрипт переедут на новую ступень вместе с вами. Понижение обратно не предусмотрено.
Если процессор, память и диск спокойны, а приложение медленное, узкое место снаружи машины: медленный внешний API, DNS или сеть клиента. Проверьте
curl -w '%{time_total}\n' -o /dev/null -sдо нужного адреса.