Отчеты об использовании процессора Windows «iowait»

9

Windows учитывает и сообщает « iowait» так же, как Linux? То есть процессы входят в «непрерывный сон», а их затраченное время вычитается из «CPU free»?

Если да, то какие счетчики Perfmon будут уместными для обнаружения «процессор занят из-за задержек, обслуживающих ввод-вывод», а не «процессор занят из-за вычислений?»

Йоло Пердием
источник
Это ядро ​​волшебства. Возможно, вы захотите заглянуть в «Windows Internals» для более подробной картины.
The Wabbit

Ответы:

10

Некоторые понятия в ядре Windows значительно отличаются от таковых в Linux, поэтому вы не видите iowaitсчетчика в Perfmon.

Во-первых, сущность планирования в Windows - это поток, а не процесс. Процесс - это просто контейнер для 1+ потоков. Кроме того, Windows не определяет непрерывное состояние сна для своих потоков (точнее, все запросы ввода-вывода могут прерываться - например, другим потоком того же процесса), поэтому iowaitна платформах Windows не будет точного аналога. Windows сообщает, что ее потоки ожидают синхронизации ввода-вывода как «бездействующие», так как потоки просто переключаются в контекст планировщиком, как только они выдают запросы синхронизации ввода-вывода.

Если вас интересует общее время, потраченное на операции ввода-вывода на конкретном устройстве, вам следует посмотреть на счетчики, связанные с задержкой, а также количество соответствующих запросов, обработанных за этот период времени. Это, однако, не позволит вам разбить его на синхронные и асинхронные шаблоны доступа.

заместитель Wabbit
источник