¿Windows representa e informa " iowait" de la misma manera que Linux? Es decir, ¿los procesos entran en "suspensión ininterrumpida" y el tiempo dedicado se resta de "CPU libre"?
Si es así, ¿qué contadores de Perfmon serían apropiados para detectar "CPU ocupada debido a retrasos en el mantenimiento de IO" en lugar de "CPU ocupada debido a la computación"?
Respuestas:
Algunos de los conceptos en el kernel de Windows difieren significativamente de los de Linux, es por eso que no ve un
iowait
contador en Perfmon.Primero, la entidad de programación en Windows es un hilo, no un proceso. Un proceso es solo un contenedor para 1+ hilos. Además, Windows no define un estado de suspensión ininterrumpible para sus subprocesos (más precisamente, todas las solicitudes de E / S pueden interrumpirse, por ejemplo, por otro subproceso del mismo proceso), por lo que no habría una
iowait
contraparte exacta en las plataformas de Windows. Windows informa el tiempo que sus subprocesos esperan sincronización de E / S como "inactivo" ya que los subprocesos simplemente cambian de contexto por el planificador tan pronto como emiten solicitudes de sincronización de E / S.Si está interesado en la cantidad de tiempo total dedicado a las operaciones de E / S en un dispositivo específico, debe mirar los contadores relacionados con la latencia junto con el número de solicitudes respectivas procesadas dentro de este período de tiempo. Sin embargo, esto no le permitirá desglosarlo en patrones de acceso síncrono frente a asíncrono.
fuente