回答:
Windowsカーネルの概念の一部はLinuxの概念とは大きく異なります。これがiowait
、Perfmonにカウンターが表示されない理由です。
まず、Windowsでのスケジューリングのエンティティは、プロセスではなくスレッドです。プロセスは、1つ以上のスレッドの単なるコンテナーです。さらに、Windowsはそのスレッドに対して割り込み不可能なスリープ状態を定義していません(より正確には、すべてのI / O要求は、たとえば同じプロセスの別のスレッドによって中断される可能性があります)。したがってiowait
、Windowsプラットフォームには正確な対応はありません。Windowsは、スレッドが同期I / O要求を発行するとすぐに、スケジューラによってスレッドが単にコンテキスト切り替えされるため、スレッドが同期I / Oを待機している時間を「アイドル」として報告します。
特定のデバイスでのI / O操作に費やされた合計時間に関心がある場合は、この期間内に処理されたそれぞれのリクエストの数とともに、レイテンシー関連のカウンターを確認する必要があります。ただし、これにより、同期アクセスパターンと非同期アクセスパターンでそれを分解することはできません。