O Windows responde e relata " iowait" da mesma maneira que o Linux? Ou seja, os processos entram em "suspensão ininterrupta" e o tempo gasto é subtraído de "sem CPU"?
Em caso afirmativo, quais contadores Perfmon seriam apropriados para detectar "CPU ocupada devido a atrasos no serviço de E / S" em oposição a "CPU ocupada devido a computação?"
Respostas:
Alguns dos conceitos no kernel do Windows diferem significativamente dos do Linux, é por isso que você não vê um
iowait
contador no Perfmon.Primeiro, a entidade de agendamento no Windows é um encadeamento, não um processo. Um processo é apenas um contêiner para mais de 1 thread. 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
iowait
contrapartida exata nas plataformas Windows. O Windows relata o tempo em que seus encadeamentos aguardam a E / S de sincronização como "inativos", pois os encadeamentos são simplesmente alternados por contexto pelo agendador assim que emitem solicitações de E / S de sincronização.Se você estiver interessado na quantidade total de tempo gasto para operações de E / S em um dispositivo específico, consulte os contadores relacionados à latência, juntamente com o número de solicitações respectivas processadas dentro desse período. No entanto, isso não permitiria que você a decomponha nos padrões de acesso síncrono e assíncrono.
fonte