1
CPUはIO保留中をどのように知るのですか?
iowait以下に示すように、トップユーティリティの出力に表示されるプロパティを調査しました。 top - 07:30:58 up 3:37, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st iowait 一般的に次のように定義されます。 「CPUがアイドル状態で、保留中のIOがある時間です。」 プロセスは単一のCPUで実行されることを理解しています。タイムスロットを使い果たしたためにスケジュールが解除された後、またはブロックされた後、いずれかのCPUで再びスケジュールすることができます。 IO要求の場合、プロセスを割り込み不可能なスリープ状態にするCPUがiowait時間を追跡します。他のCPUは、実際にアイドル状態であるため、それらの側でアイドル時間と同じ時間を報告します。この仮定は正しいですか? さらに、長いIOリクエストがあると仮定すると(プロセスがスケジュールされる機会がいくつかあったが、IOが完了しなかったためにスケジュールされなかった)、CPUは「保留中のIO」があることをどのように知るのでしょうか?そのような情報はどこから取得されますか?CPUのいずれかがそのプロセスをスリープ状態にした可能性があるため、CPUがIOが完了するまでに何らかのプロセスがスリープ状態になったことを単純に見つける方法はありますか。「保留中のIO」のこのステータスはどのように確認されますか?
17
linux
cpu
top
load-average