Сервис замедлился, в мониторинге всплывают ошибки – нужно быстро понять, в чём причина. На VPS причин больше, чем на физическом сервере: к собственной нагрузке добавляются гипервизор и соседи по ноде. Вот метрики производительности, с которых начинают диагностику.
CPU: load average и steal time
В top видны сразу оба числа: load average и %st. Load average выше числа vCPU – повод проверить нагрузку, но это только ориентир: в это значение входят не только задачи, ожидающие CPU, но и процессы в ожидании ввода-вывода. На серверах с быстрым I/O или большим количеством потоков высокий load не всегда означает проблему с процессором. Если %st высокий, mpstat -P ALL 1 покажет, какие именно ядра страдают. На Cloud VPS %st важен: стабильно высокий показатель может говорить о задержке выделения CPU со стороны гипервизора, но сам по себе не доказывает оверселлинг.
Память и swap
free -m: смотрите столбец available, но помните, что Linux использует свободную RAM под файловый кэш. Если available низкий, а vmstat 1 показывает ненулевые si/so – система уходит в swap и задержки растут. Проверьте dmesg | grep -i oom, OOM-killer мог убить процесс.
Диск: iowait и latency
iostat -x 1: %iowait в CPU-блоке выше 10–15% может быть сигналом для проверки диска и очереди I/O. Нормальные значения зависят от типа нагрузки: для баз данных, очередей и файловых сервисов они могут отличаться. По устройствам – await (мс) и %util. На NVMe %util ненадёжен: 100% не означает полной загрузки диска. Смотрите await: для NVMe тревожно выше 1–2 мс, для сетевого хранилища – выше 20 мс.
Сеть: пропускная способность и потери
ss -s показывает TCP-соединения по состояниям. Ретрансмиты проверяйте отдельно: nstat -az | grep -i retrans. Команда показывает статистику TCP-стека ядра, поэтому она не отражает все возможные потери пакетов на уровне сети провайдера. Тревожен не сам ненулевой счётчик, а его рост при штатной нагрузке. На VPS виртуальный сетевой стек может добавлять задержки, а ifstat показывает текущую скорость передачи данных через интерфейс.
Первые 5 минут: чек-лист
• uptime – load average за 1, 5 и 15 минут
• top – steal time (%st) и топ потребителей CPU
• free -m – нагрузка на память и своп
• iostat -x 1 3 – await и %util по дискам
• nstat -az | grep -i retrans – ретрансмиты и потери пакетов
Зафиксируйте базовые значения при штатной работе – без них разобраться в отклонениях сложнее. Запустите этот мониторинг на своём VPS и сохраните вывод для будущих сравнений.