仮想マシンのCPUスチール時間を確認しようとしています。目標は、自分のアプリがオーバーコミットされたハードウェア上のVMで実行されているかどうかを検出できるようにすることです。
私は現在、後の生産に備えてテストを行っています。
Max OS10.6.8のVirtualBox4.1.4で実行されているUbuntu11.04でこれをテストしようとしました。
Vmstatコマンドを実行すると、マニュアルページから、CPUセクションの下に「st」列が表示されるはずだと思われます。これは見えません。 「ussyidwa」が表示されます。
「vmstat-s」を実行すると、「盗まれたcputickが0」になります。仮想ボックスがCPUの20%しか取得していない(そしてVBは複数のCPUサッキングループを実行している)までホストマシンをロードした場合でも、0を取得します。
VmstatがUbuntuで盗まれたCPUサイクルを検出していないという印象を受けています。
他にやるべきことはありますか?それとも私の基本的な理解は間違っていますか?
VMのCPU時間に飢えていることを検出するためのより良い方法はありますか?
Topを実行すると、Cpu(s)の行が表示されます。 CPUラインの最後は「%st」です。それは「スティールタイム」の略です。スチール時間は、CPUが何かを実行していた時間ですが、ハイパーバイザーは代わりに何かを実行しています。
上部に%stが表示されない場合、または「vmstat -s」に「StolenCPUticks」が表示されない場合は、procpsのインストールをアップグレードしてみます。