Relatório de utilização da CPU do Windows “iowait”

7

O Windows conta e reporta " iowait" no mesma maneira que o Linux? Ou seja, os processos entram em "sono ininterrupto" e o tempo gasto é subtraído de "sem CPU"?

Em caso afirmativo, quais contadores de Perfmon seriam apropriados para detectar "cpu busy devido a atrasos atendendo o IO" em vez de "cpu busy due to computation?"

    
por Yolo Perdiem 18.10.2013 / 22:02

1 resposta

6

Alguns dos conceitos do kernel do Windows diferem significativamente dos do Linux, por isso você não vê um contador iowait no Perfmon.

Primeiro, a entidade de agendamento no Windows é um thread, não um processo. Um processo é apenas um contêiner para 1 ou mais segmentos. Além disso, o Windows não define um estado de suspensão ininterrupta para seus encadeamentos (mais precisamente, todas as solicitações de E / S podem ser interrompidas - por exemplo, por outro encadeamento do mesmo processo), portanto, não haveria uma contrapartida exata iowait no Windows plataformas. O Windows relata o tempo que seus encadeamentos estão aguardando a sincronização de E / S como "inativa", já que os encadeamentos são simplesmente alternados por contexto pelo planejador assim que eles emitem solicitações de E / S de sincronização.

Se você estiver interessado no tempo total gasto em operações de E / S em um dispositivo específico, consulte o contadores relacionados à latitude , juntamente com o número de solicitações respectivas processadas dentro desse período de tempo. No entanto, isso não permitiria que você dividisse em padrões de acesso síncrono vs assíncrono.

    
por 18.10.2013 / 22:44