В статье разберём:
- как установить и использовать
iostatдля анализа устройств; - как применять
iotopдля поиска «прожорливых» процессов; - какие метрики учитывать при диагностике;
- какие ошибки встречаются и как их решать.
Что понадобится
-
Ubuntu/Debian VPS с доступом по SSH.
-
Пакеты
sysstat(для iostat) иiotop. -
Права root или sudo.
Использование iostat для анализа дискового ввода-вывода
iostat входит в пакет sysstat и показывает общую статистику по дискам и CPU. Он помогает понять, есть ли проблемы с производительностью хранилища.
Установка
sudo apt update
sudo apt install -y sysstat
Базовый запуск
iostat
По умолчанию утилита выводит средние значения с момента запуска системы.
Мониторинг в реальном времени
# обновление каждые 2 секунды, 5 раз подряд
iostat -dx 2 5
Ключевые метрики
-
%util — загрузка устройства. Если часто >80%, диск перегружен.
-
r/s и w/s — количество операций чтения/записи в секунду.
-
await — среднее время обработки запроса (мс). Высокое значение — признак «тормозящего» диска.
-
svctm — среднее время обслуживания запросов (мс).
Совет: используйте iostat -mx для вывода в мегабайтах/секунду и более наглядной статистики.
Мониторинг процессов через iotop
iotop показывает, какие процессы больше всего используют диск в реальном времени — аналог top, но для I/O. Это помогает быстро выявить «прожорливые» сервисы.
Установка
sudo apt update
sudo apt install -y iotop
Запуск
sudo iotop
По умолчанию вывод обновляется раз в несколько секунд и показывает процессы с активным дисковым вводом-выводом.
Основные столбцы
-
DISK READ / DISK WRITE — текущая скорость чтения/записи процессом.
-
SWAPIN — использование подкачки.
-
IO% — доля времени, когда процесс ждал операций I/O.
-
COMMAND — команда, вызвавшая процесс.
Полезные опции
-
-o— показывать только процессы с активным I/O. -
-a— накопительная статистика (сумма операций с момента запуска). -
-b— пакетный режим (удобно для логирования).
Совет: если iotop жалуется на отсутствие прав, добавьте пользователя в группу adm или запускайте через sudo.
Типичные ошибки и их решения
При работе с iostat и iotop иногда возникают ошибки. Разберём самые распространённые.
Ошибки при использовании iostat
-
Command ‘iostat’ not found — утилита не установлена.
sudo apt install -y sysstat -
No such file or directory для устройств — бывает, если в системе нет физических дисков (например, только виртуальные тома). В этом случае используйте
lsblkилиdf -hдля уточнения устройств.
Ошибки при использовании iotop
-
iotop: command not found — утилита отсутствует.
sudo apt install -y iotop -
iotop: cannot run as ordinary user — запуск без прав root. Решение:
sudo iotopили добавьте пользователя в группу
adm:sudo usermod -aG adm $USER -
No I/O activity — на диске просто нет активных операций. Попробуйте сгенерировать нагрузку (например, с помощью
dd):dd if=/dev/zero of=testfile bs=1M count=500
Совет: используйте iotop -o, чтобы выводить только активные процессы и не путаться в «пустых» строках.
Итоги
-
Установили
iostatиз пакетаsysstatи научились читать ключевые метрики: %util, await, r/s, w/s. -
Освоили
iotopдля мониторинга процессов, активно нагружающих диск. -
Разобрали важные опции (
-o,-a,-b) и их практическое применение. -
Разобрали типичные ошибки при установке и запуске утилит.
Вывод: если нужно оценить общую нагрузку на диски — используйте iostat. Чтобы найти конкретные процессы, «съедающие» I/O, пригодится iotop. Вместе они дают полное понимание дисковой активности на VPS.
Здравствуйте! Я попробовал запустить iostat, но там выводится куча непонятных колонок. Подскажите, на какие значения стоит в первую очередь обращать внимание, чтобы понять, что диск перегружен?
Андрей, добрый день!
В первую очередь смотрите на показатель %util — он показывает, насколько диск загружен (близкое к 100% значение = диск работает на пределе). Также обратите внимание на await — это среднее время ожидания операции ввода-вывода: чем выше, тем хуже. Остальные метрики помогут в более глубоком анализе, но эти две — ключевые.
В первую очередь смотрите на показатель %util — он показывает, насколько диск загружен (близкое к 100% значение = диск работает на пределе). Также обратите внимание на await — это среднее время ожидания операции ввода-вывода: чем выше, тем хуже. Остальные метрики помогут в более глубоком анализе, но эти две — ключевые.
А с помощью iotop можно ли увидеть, какой именно процесс нагружает диск в реальном времени?
Виктор, да, именно для этого iotop и используется. Команда показывает список процессов и сколько они читают/пишут на диск в текущий момент. Удобно запускать с ключом -o — тогда в списке будут только процессы, реально выполняющие операции ввода-вывода.