Диск тормозит: как читать iostat без универсальных порогов
Смотрим задержки, очередь и операции ввода-вывода, учитывая SSD, виртуальные диски и различие между первым отчётом и текущими интервалами.

В этой статье
CPU не загружен, но сайт отвечает медленно, а фоновые задачи выполняются дольше обычного. Возможная причина — ожидание хранилища. iostat помогает увидеть активность устройств, но один высокий процент не объясняет проблему. Нужны несколько интервалов и связь с рабочей нагрузкой.
Снимите короткую серию
Инструкция рассчитана на Linux с установленным пакетом sysstat. Команда просмотра не меняет настройки устройства:
iostat -xz 1 6
Параметр расширенного вывода добавляет показатели устройств, а исключение неактивных строк уменьшает шум. Первый отчёт обычно содержит накопленные с загрузки значения; следующие относятся к интервалам наблюдения. Поэтому для текущего инцидента не ограничивайтесь первой таблицей.
Проверьте имена устройств по схеме монтирования. Если приложение работает на логическом или сетевом томе, наблюдение за случайным физическим диском может не отвечать на нужный вопрос.
Разделите объём и задержку
Скорость передачи показывает, сколько данных обрабатывается, а число операций — сколько запросов обслуживается. Одинаковый поток мегабайтов может состоять из крупных последовательных чтений или множества маленьких операций. Для приложения эти сценарии имеют разную стоимость.
Показатели ожидания, такие как r_await и w_await, отражают среднюю задержку соответствующих запросов, включая ожидание в очереди и обслуживание. Названия столбцов зависят от версии. Среднее может скрывать редкие долгие операции, поэтому сопоставляйте его с задержкой приложения и более подробным мониторингом, если он есть.
Осторожнее с процентом занятости
%util нельзя считать универсальным измерителем предела любого современного хранилища. Устройства, которые обслуживают запросы параллельно, отличаются от одного последовательного механического диска. Значение само по себе не говорит, сколько полезной пропускной способности ещё осталось.
На виртуальном сервере дополнительно действуют ограничения провайдера и общий уровень хранения. Низкий видимый поток данных не исключает ограничения по числу операций или задержки за пределами гостевой системы.
Сопоставьте с задачами
Пример: рост задержек совпадает с резервным копированием и массовым импортом. Полезно проверить, конкурируют ли они за один источник. Запуск теста скорости поверх этой нагрузки добавит новые операции и затруднит вывод, поэтому первоначальная диагностика должна оставаться наблюдением.
Если активность высокая, а пользовательские сценарии не ухудшились, это может быть нормальная полезная работа. Если задержки сайта растут при умеренном потоке, изучите характер операций и дополнительные ограничения. Не объявляйте устройство неисправным только по одной таблице.
Результат и повторная проверка
Сохраните временной интервал, устройство, тип нагрузки и показатели нескольких последовательных строк. Отметьте параллельные фоновые задания. После выбранного изменения повторите наблюдение в сопоставимых условиях и проверьте пользовательское время ответа.
Если требуется обращение к провайдеру, полезнее передать точный интервал и измерения, чем утверждение «диск медленный». Диагностика должна сузить область проблемы: очередь внутри гостевой системы, конкурирующие задачи или ограничения внешнего хранилища. Результат оценивается по устойчивой работе приложения, а не по достижению произвольного процента.
The CPU is not fully utilized, yet the site responds slowly, and background tasks take longer than usual. A likely cause is storage wait time. iostat helps reveal device activity, but a single high percentage does not explain the issue. Multiple intervals and correlation with the workload are needed.
Take a short series
This guide assumes Linux with the sysstat package installed. The viewing command does not change device settings:
iostat -xz 1 6
The extended output parameter adds device metrics, while excluding inactive rows reduces noise. The first report typically contains cumulative values since boot; subsequent reports cover observation intervals. Therefore, for a current incident, do not limit yourself to the first table.
Verify device names against the mount scheme. If an application runs on a logical or network volume, monitoring a random physical disk may not answer the right question.
Separate throughput from latency
Transfer speed indicates how much data is processed, while the operation count shows how many requests are handled. The same megabyte throughput can consist of large sequential reads or numerous small operations. For an application, these scenarios carry different costs.
Wait metrics, such as r_await and w_await, reflect the average latency of the corresponding requests, including queue wait time and service time. Column names depend on the version. The average can mask rare long operations, so compare it with application latency and more detailed monitoring if available.
Be cautious with utilization percentage
%util cannot be considered a universal measure of the limit for any modern storage. Devices that handle requests in parallel differ from a single sequential mechanical disk. The value alone does not indicate how much useful throughput remains.
On a virtual server, provider limits and overall storage levels impose additional constraints. Low visible data throughput does not rule out operation count limits or latency occurring outside the guest system.
Align with tasks
Example: latency spikes coincide with backup runs and mass imports. It is useful to check whether they compete for the same resource. Running a speed test over this load adds new operations and complicates conclusions, so initial diagnostics should remain observational.
If activity is high but user scenarios have not degraded, this may be normal productive work. If site latency rises with moderate throughput, examine the operation characteristics and additional constraints. Do not declare a device faulty based on a single table.
Results and re-verification
Record the time interval, device, load type, and metrics from several consecutive rows. Note parallel background jobs. After the selected change, repeat the observation under comparable conditions and verify user response time.
If you need to contact a provider, it is more useful to provide the exact interval and measurements than to state 'the disk is slow.' Diagnostics should narrow the scope of the problem: a queue within the guest system, competing tasks, or constraints of the external storage. The result is evaluated based on stable application performance, not by achieving an arbitrary percentage.

Обсуждение 0
Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.
Пока никто не написал. Начни обсуждение.