TOPサーバ構築・運用> 同時実行時のパフォーマンス検証
仮想化環境のパフォーマンス
仮想化環境におけるデータベースのパフォーマンス検証

仮想化環境のチューニングポイントとは?

著者:アット・ワイエムシー  岩間 和彦   2007/8/1
前のページ  1  2  3
同時実行時のパフォーマンス検証

   それでは、仮想化したサーバ上で同時に複数台のゲスト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での利用であれば参照系の割合が高いため、今回の検証のようにキャッシュを適切に設定して利用することで、かなりのパフォーマンス改善ができるでしょう。しかし、更新系の処理の多いアプリケーションが中心の場合には、参照系に比べて改善が難しいため、仮想化したサーバでの利用は注意が必要です。


まとめ

   今回はI/Oの影響がわかるようにMySQLのキャッシュ回りの設定を中心にパラメータを変えてパフォーマンスの検証を行いました。

   メモリキャッシュをどの程度割り当てればよいかはサーバの利用状況によって変わりますが、当然のことながらメモリを割り当てるためにはそれ相応の空きメモリが必要となります。

   例えばJava/Tomcatのようなシステムに常駐するアプリケーションサーバの場合には、アプリケーションサーバ側に対しても多くのメモリを割り当てる必要があるため、相対的にデータベースに割り当て可能なメモリは少なくなります。

   MySQLの配布パッケージ内にもメモリ量に応じた設定ファイルのサンプルがありますが、ゲストOSに割り当てられているメモリ量から単純にパラメータを決めるのではなく、実際に稼動時のメモリの利用状況を見てパラメータを決めるようにしましょう。適切な設定でない場合、スワップを多用することになるなど、パフォーマンス低下の原因にもなりかねませんので注意が必要です。

   仮想化は1台のサーバを複数のOSで利用するためコストパフォーマンスにすぐれた運用が可能になりますが、データベースのようなI/O負荷の高いサービスを利用する場合には、そのチューニングの影響は専用サーバで利用するよりも大きなものになってきます。

   しかしながら、適切なチューニングを行うことで、仮想化したOS上でもパフォーマンスの低下を抑えることができますので、I/O負荷がかからないようにメモリを有効利用することがパフォーマンスを確保する重要なポイントとなります。

   パフォーマンスに不満のある人は、1度設定を見直してみてはいかがでしょうか?

前のページ  1  2  3


株式会社アット・ワイエムシー 岩間 和彦
著者プロフィール
株式会社アット・ワイエムシー  岩間 和彦
1999年、株式会社アット・ワイエムシーの前身である株式会社山口マルチメディアコミュニケーションズの設立に参与。2001年、株式会社アット・ワイエムシー技術部部長、2005年には同取締役技術支援部長。現在はVPSおよび専用サーバ向けの新規サービスの開発を主に行っている。ApacheのWebDAVモジュール用の日本語対応パッチを作成/公開するなど、コミュニティ活動にも参加。


INDEX
仮想化環境のチューニングポイントとは?
  仮想化環境におけるMySQLのパフォーマンス
  単体でのパフォーマンス検証
同時実行時のパフォーマンス検証