Назад | Перейти на главную страницу

Как iostat вычисляет, что время простоя ЦП рассматривается как% простоя или% iowait?

я переживала iostat справочная страница. Согласно ему,

 %iowait
 Show the percentage of time that the CPU or CPUs were idle during which the system    
 had an outstanding disk I/O request.   

 %idle
 Show the percentage of time that the CPU or CPUs were idle during which the system    
 did not have an outstanding disk I/O request.                  

Я не понимал, как iostat определяет, является ли запрос ввода-вывода невыполненным или нет.

iowait - это в основном среднее время (в миллисекундах) для запросов ввода-вывода, отправленных устройству для обслуживания. Это включает время, затраченное на запросы в очереди, и время, потраченное на их обслуживание.

Измеряется на основе per io от передней части планировщика io до завершения io. Он охватывает время, затрачиваемое на планировщик, драйвер, контроллер, транспорт (для san) и хранилище, необходимое для завершения каждого io. Это среднее время в миллисекундах для запросов ввода-вывода, выполненных хранилищем, и включает время, затраченное на запросы в очереди планировщика, и время, затраченное хранилищем на их обслуживание.

Во время передачи выполняется несколько этапов ввода-вывода. После того, как приложение отправляет IO, для него выделяется запрос, и когда запрос предоставляется, ядро ​​видит, может ли оно объединить io с любой существующей очередью запросов. Время, проведенное в очереди запросов, добавляется к общему времени обслуживания. Затем после слияния io отправляется в хранилище. Если хранилище находится под давлением или не может справиться с номерами ввода-вывода, тогда наш ввод-вывод также должен ждать, пока его не обслужит хранилище. Итак, по сути, есть две фазы ожидания, которые выполняет iostat.

Для этой цели он ссылается на файл proc / proc / diskstats.

Спрашивая ядро. Эта информация прямо содержится в первой строке /proc/statсм. документация по процессу.