単一の Windows VM (KVM) ですべてのホスト リソースを使用する - パフォーマンスを向上させる方法

単一の Windows VM (KVM) ですべてのホスト リソースを使用する - パフォーマンスを向上させる方法

Ubuntu 12.04 で KVM/qemu を使用して、多くのホスト リソース (すべての CPU コア、4GB RAM) を使用する Windows 2008 R2 VM を生成しています。Windows の起動中に、Windows は割り当てられたすべてのメモリを割り当て、これがホスト リソースを大量に消費し、KVM がセグメント違反になることがあるようです。

virtio ドライバーなどを使用する以外に、このタイプのデプロイメントに推奨される設定やオプションはありますか (ハイパーバイザー設定やホスト カーネルの調整に沿ったものを考えています)。

答え1

これは、Ubuntu 12.04 LTS が使用するカーネルまたは QEMU バージョンの組み合わせであることが判明しました。12.10 にアップグレードすると、この問題は完全に修正されました。私は、起動中に 'perf top' を使用して KVM プロセスをデバッグしているときにこの問題に遭遇しました。KVM__ticket_spin_lockアーカイブを検索した後、大量の問題が示されました。カーネル スケジューリングの可能性に関するコメントと、スケジューリングの問題の改善について言及している新しい QMEU パッチが見つかりました。

12.10 が使用するバージョンは次のとおりです。

QEMU emulator version 1.2.0 (qemu-kvm-1.2.0+noroms-0ubuntu2.12.10.6, Debian) Kernel 3.5.0-46-generic

Ubuntu の最小バージョンとして、これを絶対にお勧めします。パフォーマンスの向上は目を見張るものがあります。通常、このような状況では LTS を好みますが、アップグレードが簡単だったため、いずれにしても 14.04 LTS が間もなくリリースされるはずです。

関連情報