Windows-Bericht zur CPU-Auslastung „iowait“


9

Berücksichtigt und meldet Windows " iowait" auf dieselbe Weise wie Linux? Das heißt, Prozesse treten in einen "unterbrechungsfreien Ruhezustand" ein und ihre aufgewendete Zeit wird von "CPU-frei" abgezogen?

Wenn ja, welche Perfmon-Zähler sind geeignet, um zu erkennen, dass die CPU aufgrund von Verzögerungen bei der Wartung der E / A ausgelastet ist, und nicht, dass die CPU aufgrund der Berechnung ausgelastet ist?


Dies ist Kernel-Zauberei. Vielleicht möchten Sie in den "Windows Internals" nach einem detaillierteren Bild suchen .
The-Wabbit

Antworten:


9

Einige der Konzepte im Windows-Kernel unterscheiden sich erheblich von denen unter Linux. Aus diesem Grund wird iowaitin Perfmon kein Zähler angezeigt.

Erstens ist die Entität der Zeitplanung in Windows ein Thread, kein Prozess. Ein Prozess ist nur ein Container für 1+ Threads. Darüber hinaus definiert Windows keinen unterbrechungsfreien Ruhezustand für seine Threads (genauer gesagt, alle E / A-Anforderungen können unterbrochen werden - beispielsweise durch einen anderen Thread desselben Prozesses), sodass es iowaitauf Windows-Plattformen kein genaues Gegenstück gibt. Windows meldet die Zeit, zu der seine Threads auf Synchronisierungs-E / A warten, als "Leerlauf", da Threads vom Scheduler einfach kontextumgeschaltet werden, sobald sie Synchronisierungs-E / A-Anforderungen ausgeben.

Wenn Sie an der Gesamtzeit interessiert sind, die für E / A-Vorgänge auf einem bestimmten Gerät aufgewendet wird, sollten Sie sich die latenzbezogenen Zähler sowie die Anzahl der jeweiligen Anforderungen ansehen, die innerhalb dieses Zeitraums verarbeitet wurden. Dies würde es Ihnen jedoch nicht ermöglichen, es in synchrone oder asynchrone Zugriffsmuster aufzuteilen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.