nkjmkzk.net

powered by Kazuki Nakajima

PVMとPVHVMの性能比較

PVMとは準仮想マシンのことで、より高性能を求めてカーネルがゲストOS専用に改造されています。

一方、HVMとは完全仮想マシンのことで、カーネルには何ら手が加えられていません。

これまでは単純にPVMとHVMの性能を比較すると圧倒的にPVMが勝っていました。HVMで最も性能劣化が顕著なのは下記2点です。

  • ネットワーク、ディスクI/O
  • メモリ管理

しかしネットワーク、ディスクI/OについてはHVMであっても実はPVドライバを別途インストールすることでPVMと遜色ない性能を確保することが可能でした。

*このHVMにPVドライバをインストールした仮想マシンのことを属にPVHVMと呼んでいます。

問題だったのはメモリ管理です。HVMのゲストOSのメモリアドレスから物理メモリのアドレスを求めるときのオーバヘッドが非常に大きかったのです。しかし実はこれも状況が変わってきています。Intelのコードネーム:Nehalemと呼ばれている新しい(といってもリリースされてもう久しいが)アーキテクチャのCPUは仮想化支援機構を強化しています。その目玉がEPTという機能で、先ほど大きなオーバーヘッドであると言ったHVMのメモリアドレス変換処理を高速化するための機構です。

*ちなみにEPTはHVM用の機構なのでPVMには影響しません。

実際このEPTの効果は様々なテストによって非常に大きいと言われています。そもそもPVMではこのメモリ変換処理を、改造したカーネルによってオーバヘッドを緩和していました。HVMではHypervisorがゲストOSの素のカーネルから発行される物理メモリへのアクセスをトラップして実際のアドレスに修正するというタフな処理を行っていたのでオーバヘッドが大きかったのですが、それがEPTによってHypervisorはそのトラップ&変換処理をCPUに任せることができるようになりました。

そこで気になるにはどれくらい速いのか? ですよね。

ということでEPTの効果が如実に現れるという噂のソフトウェアのコンパイル処理をPVMとPVHVMで行いました。

環境

  • 物理CPU:Core i7 860(クアッドコア & Hyper-Threading)
  • Hypervisor:Xen 3.4
  • ゲストOS:Enterprise Linux 5u4 64bit(vCPUを4つ割り当て)
  • カーネル:2.6.18-164

テスト内容

  • php-5.3.1をmake -j8として8スレッドでコンパイルし、所要時間を計測

結果

  • PVM:55秒
  • PVHVM:46秒

ということで確かにPVHVMの方が高速です。HVMがPVMを性能面で上回るというのは以前は考えられないことでしたがEPT恐るべし、です。

これからはXenであってもゲストOSはHVM(PVHVM)を選択することも視野に入れねばなりませんね。

with one comment

Written by 中嶋 一樹

3月 25th, 2010 at 10:25 pm

Posted in Uncategorized

Tagged with ,

One Response to 'PVMとPVHVMの性能比較'

Subscribe to comments with RSS or TrackBack to 'PVMとPVHVMの性能比較'.

  1. [...] 英空港職員、全身透視スキャナーで同僚女性見て懲戒かnewsing:1 PVMとPVHVMの性能比較 at nkjmkzk.netはてブ:5 インフォセブン(info-Seven)fc2:1 Togetter – [...]

Leave a Reply