>>前回

 検証(2)では、KVMのオーバーヘッドをXenと比べる(図3)。利用するCPUコア数を8として、検証(1)と同じ内容のベンチマークテストをXenに対して行った。XenはRHEL6には含まれていないので、従来版のRHEL5.4に含まれている「xen-3.0.3」を用いた。RHEL5.4では仮想化ソフトとしてKVMとXenを選択可能だったが、新版のRHEL6では(Xenが外され)KVMだけがサポートされるようになった。また、RHEL5.4に付属するMySQLはバージョンが少々古い(5.0.77)ので、MySQL 5.1.47をRHEL5.4でビルドして利用した。

図3●KVM(OSはRHEL6)とXen(OSはRHEL5.4)のデータベース処理性能
図3●KVM(OSはRHEL6)とXen(OSはRHEL5.4)のデータベース処理性能
MySQL 5.1.47を8CPUコアで動かし、SELECTとINSERTの処理性能を調べた
[画像のクリックで拡大表示]

 XenにもKVMのようにホスト環境(ドメイン-0)とゲスト環境(ドメイン-U)があり、ホスト環境がゲスト環境を管理している。

 この検証結果では、オーバーヘッドがどの程度違うのかに注目してほしい。SELECT処理、INSERT処理ともに、KVMの方がXenよりも良好な結果となった。SELECT処理では、Xenのオーバーヘッドが58.6%あったのに対し、KVMのオーバーヘッドは43.9%と15ポイントほど小さかった。また、INSERT処理でも、Xenのオーバーヘッドが50.7%だったのに対し、KVMのそれは38.9%と12ポイントほど小さい。つまり、KVMのオーバーヘッドはXenに比べて小さく、評価できるものだといえる。

 なお、KVMとXenで検証に利用したOSのバージョンが異なるほか、Xen自体も旧版のものなので、検証結果として得られた処理性能を直接比べても、KVMとXenの公平な性能比較にならないことに注意していただきたい。

 ここまでで、KVMのオーバーヘッドはXenに比べて小さいものの、データベース処理では40~60%になることが分かった。これは、物理サーバーの処理能力の約半分しか生かせないことを意味する。そこで以下では、KVMに対して各種要素テストを行い、オーバーヘッドがなぜ発生するのか探る。