高負荷時のXenとVirtualBoxの比較


回答:


25

VirtualBoxは、ゲストOSが仮想環境で実行されていることをゲストOSが認識しない方法で実行するため、Xenは通常、VirtualBoxよりもはるかに優れたパフォーマンスを発揮します。別の言い方をすると、ゲストOSは仮想的に実行されるように変更されていません。このため、VirtualBoxはカーネルタイプの命令を「トラップ」し、カスタムコードを実行して、制御をゲストに返す必要があります。IntelおよびAMDが提供するハードウェア仮想化サポートを使用できますが、それでもオーバーヘッドが増大します。

一方、Xenは、ゲストOSがXenモデルに適合するように再コンパイルされていることを確認します。そのため、ゲストOSからハイパーバイザーへの制御フローがスムーズに行われ、ゲストOSがハードウェアに直接アクセスするふりをする必要がないというオーバーヘッドがありません。

パフォーマンステストのデータを含む、かなりの数の仮想化テクノロジーの概要については、このレポートをお読みください。Linuxについてのみ説明しますが、Linux-Vserver、Xen、OpenVZ、KVM、VirtualBox、QEMUをカバーしています。Linux-VserverとXenは一般的に最高のパフォーマンスを発揮しましたが、レポートを読んでさまざまなワークロードを確認してください。

上記のすべてを述べたとしても、VirtualBoxがXenよりも優れている領域があるかもしれません。ゲストOSにグラフィカルウィンドウレイヤーがある場合、特にゲストOSに特別なVirtualBoxコンポーネントをインストールする場合、VirtualBoxはそれを適切にサポートします。

そして最後に、Xenは変更されたゲストOSのみを実行することに注意してください。変更されていないゲストOSを実行することはできません。


2
Windowsを実行しているxen上の仮想マシンは1つのコアしか使用できないことに注意してください。
Thomaschaaf、2009年

29

ハミッシュダウナーの答えはその最後の点で間違っています。Xenは変更されていないゲストを実行できますが、完全に仮想化されたHVMゲストとして実行する必要があります。これを行うには、ホストコンピューターがIntel VTまたはAMD-V対応のCPUでハードウェア仮想化をサポートしている必要があります。

XenとVirtualboxにはそれぞれ場所がありますが、2種類のハイパーバイザーです。Xenはタイプ1ハイパーバイザーであり、Virtualboxはタイプ2ハイパーバイザーです。タイプ1ハイパーバイザーは、デスクトップとして対話する複数のOSを実行するためにタイプ2ハイパーバイザーがより一般的である傾向があるサーバー環境で見られるものである傾向があります。これは主に、そのシンプルさとデスクトップ統合の向上によるものだと思います。ただし、タイプ2ハイパーバイザーの下のゲストは、基盤となるハードウェアから離れており、タイプ1ハイパーバイザーの下のゲストよりも遅くなる傾向があります。すべての場合と同様に、ルールには常に例外があります。


2
あなたは完全に正しいです:-)だからあなたは+1を手に入れます
アントワーヌ・ベンケモン

3

MacのデスクトップでWindowsマシンを仮想化するためにVirtualboxを使用したことがないので、私はXenについてのみ話すことができます。

他の人が述べたように、Xen(およびXenに基づくXenServer)は、準仮想化カーネルを使用して、CPUおよびメモリにバインドされたパフォーマンス特性を劇的に改善します。ただし、これは特殊なカーネルを備えたLinuxホストにのみ当てはまります。これを利用するには、Xen対応のカーネルが必要です。

また、Windowsはこの方法での仮想化をサポートしていませんが、それぞれのCPU上のIntel VTおよびAMD-V拡張機能はWindowsを「キャッチ」し、準仮想化方法で動作します。Windows 2003とWindows 2000は仮想化されていることを認識しませんが、Windows 2008はこれを検出し、いわゆる「エンライテンド」モードで実行されます。これは、Linuxの「準仮想化」モードと比較できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.