VDS · Решение проблем

Машина тормозит: с чего начать

Порядок диагностики за пять минут: процессор, память, диск, сеть — как за несколько команд определить, что именно упирается, и что делать дальше.

Обновлено 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 до нужного адреса.