それでは、仮想化したサーバ上で同時に複数台のゲストOSで、同じベンチマークを実行した場合のパフォーマンスの変化はどうでしょうか。
その結果が図1、2です。それぞれの数値については、表4、5となります。おそらく予想通りの結果かと思いますが、いかがでしょうか。
図1:仮想化環境におけるベンチマークグラフ(キャッシュ大)
同時実行数 |
実行時間 |
単独の場合との差 |
2台 |
187秒 |
2.03倍 |
3台 |
290秒 |
3.15倍 |
4台 |
408秒 |
4.43倍 |
表4:仮想化環境におけるベンチマーク結果(キャッシュ大)
図2:仮想化環境におけるベンチマークグラフ(キャッシュ小)
同時実行数 |
実行時間 |
単独の場合との差 |
2台 |
717秒 |
2.09倍 |
3台 |
1135秒 |
3.31倍 |
4台 |
1693秒 |
4.94倍 |
表5:仮想化環境におけるベンチマーク(キャッシュ小)
単独の場合との差に注目すると、同時に実行する数が増えるにしたがって、仮想化のオーバーヘッドの影響によりわずかずつ実行時間が延びています。またキャッシュが有効な場合(キャッシュ大)の方が実行時間の伸びが抑えられているのがわかります。
今回のテストでは、I/O負荷の影響がわかりやすいように参照系の「select」テストを用いました。LAMPでの利用であれば参照系の割合が高いため、今回の検証のようにキャッシュを適切に設定して利用することで、かなりのパフォーマンス改善ができるでしょう。しかし、更新系の処理の多いアプリケーションが中心の場合には、参照系に比べて改善が難しいため、仮想化したサーバでの利用は注意が必要です。
|