Windows "Iowait" отчеты об использовании процессора

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

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

1 ответ

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

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

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

Другие вопросы по тегам