仮想化ソフトウェアの「Xen」を用いてサーバ統合を実践していく手順を具体的に紹介します。第2回では、仮想化環境構築の際に頭を悩ませる「物理マシン」と「仮想マシン」のパフォーマンスの差について検証してみます(編集部)
前回は、オープンソースで提供されている仮想化ソフトウェア「Xen」の基本的なセットアップ方法を一通り説明しました。これを踏まえて今回から、Xenを使った仮想化環境構築におけるサイジングに焦点を当てて解説していきたいと思います。
http://www.atmarkit.co.jp/flinux/special/xen01/xen01.html
仮想化技術の大本命「Xen」を使ってみよう〜インストール & Debian環境構築編〜
http://www.atmarkit.co.jp/flinux/special/xen02/xen01.html
仮想化技術の大本命「Xen」を使ってみよう〜Xen対応カスタムカーネル構築編〜
一般に「仮想マシンの性能は物理マシンのそれよりも劣化する」といわれています。初期のころの仮想マシンは完全仮想化によって実現されていました。そのハードウェアエミュレーション処理にはかなりの負荷が掛かっていたという事実に基づくものです。
これに対し、現在の準仮想化などの新しい技術を実装した仮想マシンの性能については、まだ具体的な数字があまり知られていないのが現状だと思います。そこでここでは、物理マシンと仮想マシンとでどれほど性能差があるのかを、負荷テストやサンプルアプリケーションのスループットを見ることで、明確にしたいと思います。
テストには、まったく同じスペックのサーバ機を2台用意しました。一方のサーバ機にはネイティブなRed Hat Enterprise Linux 5(RHEL 5)をインストールしてそのまま稼働させます。もう一方には仮想化を有効にしたRHEL 5をインストールして、さらにその上で仮想マシンとしてRHEL 5を稼働させます。
テスト用サーバ機のスペックは以下のとおりです。
リソース | スペック |
---|---|
CPU | Quad Core Xeon x 2 |
RAM | 16Gbytes |
HDD | SAS 15000rpm 72Gbyte RAID1 512Mbyte Read/Write Cache |
仮想マシンには、以下のように最大限のハードウェアリソースを割り当てています。
リソース | スペック |
---|---|
仮想CPU数 | 8(サーバ機にはCPUが合計8コア搭載されていますので、これをフルに活用できるように仮想CPUを8個割り当てています) |
RAM | 15.5Gbytes(RAM、HDDに関してはホストOSが使用する分を差し引いたリソースを割り当てています) |
HDD | 60Gbytes |
■CPUの性能
まずはCPU処理能力を見てみましょう。
性能を計測するテストとして、MySQLのソースコードのコンパイルを行いました。以下のグラフは物理マシン、仮想マシンそれぞれでコンパイルに要した時間を表しています。
横軸の「1」と「8」はコンパイルを実行するときのスレッド数を表しています。マルチコア環境でも仮想マシンが最大限性能を引き出せるのかどうかを判断するために、1スレッドと8スレッドの両方でテストを行っています(注)。
注:GNU makeでは「-j」オプションによってスレッド数を指定することができます
結果を見ると、仮想マシンは物理マシンに比べて約10%の性能劣化があることが分かります。これは1スレッドでも8スレッドでも同様です。従って、仮想マシンはマルチコアの性能は十二分に発揮できるが、総じて10%の性能劣化があるということになります。
■ディスクの性能
次に、ディスクの性能を見てみましょう。ディスクの性能は「dbench」というツールで計測します。dbenchはデータを連続的にディスクに書き込み、そのスループットを計測するシンプルなベンチマークツールです。
スレッド数を増やすことによって負荷を上げていき、それに伴ってスループットがどのように推移するのかを確認することができます。スレッド数が少ないときには性能差はほとんどありませんが、スレッド数が4を超えたあたりから差が出始め、ピーク時で20%弱の性能劣化が見られます。
仮想マシン数が1台の場合は上記のような結果となりますが、仮想マシンが2台になった場合はどうでしょうか。
次のグラフでは仮想マシン数を2台にし、その2台の合計のスループットを示しています。物理マシンの数字は上記と同じです。このグラフでもう一度、物理マシンと仮想マシンの性能を比較してみます。
今度は、仮想マシンの方がトータルのスループットで上回っています。つまり、仮想マシン1台当たりでピーク時にはスループットのピーク性能は若干劣るものの、複数の仮想マシンをトータルで見た場合にはハードウェアの性能を限界まで引き出すことができるということになります。
1台の仮想マシンでSASディスクのような高性能なディスクの帯域を使い切るような環境はあまり考えられません。このため、仮想マシン1台当たりのピーク性能の劣化が、運用上問題となることは実質的にないでしょう。
現バージョンのXenの準仮想化I/Oドライバは、SATAディスクに最適化された作りになっています。従って、今回のハードウェア構成のSASディスクでは性能劣化が確認されていますが、SATAディスクであればこれほどの劣化は見られないはずです。今回のテストでは、機材の関係上、SATAディスクでの性能データを取得できませんでした。
Copyright © ITmedia, Inc. All Rights Reserved.