iostat
の出力には、steal
フィールドがあります。manページによると、このフィールドは次の目的で使用されます。
ハイパーバイザーが別の仮想プロセッサーを処理しているときに、1つまたは複数の仮想CPUが非自発的待機に費やした時間の割合を示します。
しかし、それはどういう意味ですか?カーネル自体がビジーでCPUを管理できず、CPUがアイドル状態になることを意味しますか?
ハイパーバイザーとは、VMware、XEN、VirtualBoxなどの仮想環境を管理するレイヤーを意味します。
したがって、スチールフィールドは、仮想化環境の問題やオーバーサブスクリプションを検出し、監視する興味深いフィールドである必要があります。フィールド自体は、VM CPUが他のVM(仮想マシン)が順番(スライス)を完了するまで、またはハイパーバイザー自体のタスクを待機する必要がある時間を意味します。
Stフィールドは、iostat
、vmstat
、sar
、およびtop
コマンドにあります。
ただし、この thread は、スチールフィールドがVmWare VMでサポートされていないことを確認します(私はVMware 5.5でテストし、それを裏付けています)。 VirtualBoxはCPUスチール時間データも提供しません。 XenとKVM仮想環境でサポートされています。
vmstat
もCPU領域に同じフィールドがありますが、Debian 8以降です。sar
が機能するには、sysstat
データ収集を有効にする必要があります。
man vmstat
:
st:仮想マシンから盗まれた時間。 Linux 2.6.11以前は不明。
関連スレッド スチール時間を監視するためのツール(st)
さらに読む: 仮想マシンから盗まれたCPU時間?
これは、ハイパーバイザーがVM内ではなく、何かを実行するようにスケジュールしたときです。これは、別のVMまたはハイパーバイザーホスト自体の時間になる可能性があります。時間が盗まれなかった場合、この時間はCPUワークロードまたはアイドルスレッドの実行に使用されます。