Windowsの「iowait」CPU使用率レポート


9

Windows はLinuxと同じ方法で「iowait」を説明および報告しますか?つまり、プロセスは「割り込み不可能なスリープ」に入り、費やされた時間は「CPUフリー」から差し引かれますか?

もしそうなら、「計算によるCPUビジー?」ではなく、「IOのサービス遅延によるCPUビジー?」を検出するのに適切なPerfmonカウンターはどれですか。


これはカーネルウィザードです。詳細については、「Windowsの内部」を参照してください。
the-wabbit 2013年

回答:


10

Windowsカーネルの概念の一部はLinuxの概念とは大きく異なります。これがiowait、Perfmonにカウンターが表示されない理由です。

まず、Windowsでのスケジューリングのエンティティは、プロセスではなくスレッドです。プロセスは、1つ以上のスレッドの単なるコンテナーです。さらに、Windowsはそのスレッドに対して割り込み不可能なスリープ状態を定義していません(より正確には、すべてのI / O要求は、たとえば同じプロセスの別のスレッドによって中断される可能性があります)。したがってiowait、Windowsプラットフォームには正確な対応はありません。Windowsは、スレッドが同期I / O要求を発行するとすぐに、スケジューラによってスレッドが単にコンテキスト切り替えされるため、スレッドが同期I / Oを待機している時間を「アイドル」として報告します。

特定のデバイスでのI / O操作に費やされた合計時間に関心がある場合は、この期間内に処理されたそれぞれのリクエストの数とともに、レイテンシー関連のカウンターを確認する必要があります。ただし、これにより、同期アクセスパターンと非同期アクセスパターンでそれを分解することはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.