При анализе проблем производительности обычно проверяют загрузку CPU и использование памяти, однако причиной задержек нередко становится дисковая подсистема.
Например, сервис начинает отвечать значительно медленнее:
curl http://localhost:8080/api
При этом загрузка процессора остаётся на уровне 20–30%, память не испытывает дефицита, а процессы работают без ошибок. В такой ситуации стоит проверить состояние устройств хранения.
Для этого используется
iostat из пакета sysstat. Утилита отображает статистику работы блочных устройств и помогает определить, связаны ли задержки с вводом-выводом. Запуск:iostat -yxz 1
Ключ
-y пропускает первый отчёт, содержащий статистику с момента загрузки системы, -x включает расширенную статистику, -z скрывает устройства без активности, а 1 задаёт интервал обновления в одну секунду. Пример:Device r/s w/s await %util
sda 120 80 45.2 98.7
Наиболее полезные показатели:
r/s и w/s — количество завершённых запросов чтения и записи в секунду, await — среднее время выполнения операций ввода-вывода, включая ожидание в очереди, %util — доля времени, в течение которого устройство было занято обработкой запросов.Высокий
await указывает на рост задержек ввода-вывода. Значение %util, близкое к 100%, говорит о высокой загрузке устройства, однако для современных SSD и NVMe эту метрику следует оценивать вместе с await, поскольку сама по себе она не всегда означает насыщение устройства.Если наблюдается высокая нагрузка, следующий шаг — определить процесс, создающий её:
iotop
Для общей оценки состояния системы полезно также выполнить:
vmstat 1
Если одновременно растут значения
await в iostat и wa в vmstat, это является сильным признаком того, что снижение производительности связано с ожиданием операций ввода-вывода. Однако для окончательных выводов результаты следует анализировать в контексте всей системы. Для анализа конкретного устройства:iostat -yxz nvme0n1 1
Важно учитывать, что
iostat показывает состояние устройств, но не источник нагрузки. На практике его обычно используют вместе с iotop, pidstat -d и vmstat.🔥
iostat позволяет понять, имеются ли признаки проблем на уровне дисковой подсистемы и выбрать дальнейшее направление диагностики.🚪 Linux Ready | #практика