仮想化ゲストとホストの CPU 使用率

仮想化ゲストとホストの CPU 使用率

私はハイパーバイザーとして kvm と qemu を使用しています。 Ubuntu ホスト上で gentoo ゲストを実行しています。 ゲストには 1 つのプロセッサが割り当てられています。

計算負荷の高いジョブ (空ループなど) を実行すると、ゲストとホストの両方で CPU 使用率がほぼ 100% になります。ただし、高解像度ビデオ (1080p) を再生すると、ゲストの CPU 使用率が最大 100% になるのに対し、ホストの平均 CPU 使用率は 30 ~ 40% 程度にしかなりません。何が原因なのでしょうか。

プロセスがディスク バウンドである場合、ビデオがメイン メモリにフェッチされるため (ビデオは約 1 分、40 MB、ゲスト RAM は 4 GB)、ビデオの 2 回目の実行でホスト対ゲストの CPU 使用率が改善されると思いますが、そうはなりません。では、CPU 使用率のこの違いの原因は何でしょうか。

vlc が H264 ビデオをどのように処理するかを完全には理解していません。コンピューターの速度が遅いため、フレームがドロップされている可能性があると報告されています。私の推測では、おそらく qemu が待機するグラフィック カードが関係しており、ゲストはこの待機に気付いていないのではないかと思います。

私のホストマシンには 12 個のコアと 24 GB の RAM があります。

編集 :

この問題は仮想マシンの実行とは関係ありませんでした。SSH 経由でテスト マシンにアクセスしていたことが原因です。X11 転送により、qemu プロセスのパフォーマンスが大幅に低下していました。printf ステートメントが多すぎると通常のプログラムが遅くなるのと似ているのかもしれません。私の場合、ネットワークがボトルネックになっていました。

関連情報