KVMは奇妙なCPU使用率の急増を報告します(bash無限再帰)。

KVMは奇妙なCPU使用率の急増を報告します(bash無限再帰)。

Fedora 20を実行しているKVMシステムでulimit -s unlimited(スタックサイズ制限の削除)実験的なアドバイザーのテストスクリプトを実行しました。このスクリプトがすることは無限の再帰だけです。

#!/bin/bash

fn() {
    true
    fn
}

fn

私はCPU使用率が100%に達すると予想し、少しのリソースがなくなった(長い時間がかかるかもしれません)後、bashは最終的にカーネルによって中断されます。

しかし、実際に起こっていることは少し奇妙で、説明する正しい知識がありません。

  • VM内部では、topはこの興味深いスクリプトの100%CPU使用率を報告します。言葉になりますね。

  • ただし、外部ではvirt-managerはCPU使用率が0%と表示され、繰り返し100%の急増が予想されます。これが十分に奇妙ではないように、各連続スパイク間で観察される待ち時間は増加しています(最終的に待ち時間は増加を止め、一貫性を持つようになります)。

CPU使用量の最大値

なぜこれですか?中で何が起こりましたか?それとも、virt-managerが報告した使い方が誤解を招くのでしょうか?それでは、ピーク間のパターンを引き起こす原因は何ですか?

ベストアンサー1

仮想マシン内でtopを使用すると、CPU使用率が約100%であることがわかりますが、物理ホストでは、仮想マシンはすべてのCPU時間を使用できません。これは、カーネルの観点からkvm vmが正常であるためです。プロセスなので、カーネルプロセススケジューラは他のプロセスとCPUを共有します。

おすすめ記事