Report sull'utilizzo della CPU "iowait" di Windows


9

Windows tiene conto e riporta " iowait" allo stesso modo di Linux? Cioè, i processi entrano in "modalità di continuità" e il loro tempo trascorso viene sottratto da "CPU free"?

In caso affermativo, quali contatori Perfmon sarebbero appropriati per rilevare "CPU occupata a causa di ritardi nella manutenzione di IO" anziché "CPU occupata a causa del calcolo?"


Questa è la procedura guidata del kernel. Potresti voler esaminare gli "Interni di Windows" per un'immagine più dettagliata.
the-wabbit,

Risposte:


10

Alcuni concetti nel kernel di Windows differiscono in modo significativo da quelli in Linux, ecco perché non vedi un iowaitcontatore in Perfmon.

Innanzitutto, l'entità della pianificazione in Windows è un thread, non un processo. Un processo è solo un contenitore per più di 1 thread. Inoltre, Windows non definisce uno stato di sospensione ininterrotto per i suoi thread (più precisamente, tutte le richieste I / O possono essere interrotte, ad esempio da un altro thread dello stesso processo), quindi non ci sarebbe una iowaitcontroparte esatta sulle piattaforme Windows. Windows indica il tempo in cui i suoi thread sono in attesa di sincronizzare l'I / O come "inattivo" poiché i thread vengono semplicemente scambiati dal contesto dallo scheduler non appena emettono richieste di I / O di sincronizzazione.

Se sei interessato alla quantità di tempo totale speso per le operazioni di I / O su un dispositivo specifico, dovresti esaminare i contatori relativi alla latenza insieme al numero delle rispettive richieste elaborate in questo periodo di tempo. Ciò tuttavia non consentirebbe di suddividerlo in schemi di accesso sincrono e asincrono.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.