|
||||||||||||||||||||||||
| 前のページ 1 2 3 | ||||||||||||||||||||||||
| 同時実行時のパフォーマンス検証 | ||||||||||||||||||||||||
|
それでは、仮想化したサーバ上で同時に複数台のゲストOSで、同じベンチマークを実行した場合のパフォーマンスの変化はどうでしょうか。 その結果が図1、2です。それぞれの数値については、表4、5となります。おそらく予想通りの結果かと思いますが、いかがでしょうか。 ![]() 図1:仮想化環境におけるベンチマークグラフ(キャッシュ大)
表4:仮想化環境におけるベンチマーク結果(キャッシュ大) ![]() 図2:仮想化環境におけるベンチマークグラフ(キャッシュ小)
表5:仮想化環境におけるベンチマーク(キャッシュ小) 単独の場合との差に注目すると、同時に実行する数が増えるにしたがって、仮想化のオーバーヘッドの影響によりわずかずつ実行時間が延びています。またキャッシュが有効な場合(キャッシュ大)の方が実行時間の伸びが抑えられているのがわかります。 今回のテストでは、I/O負荷の影響がわかりやすいように参照系の「select」テストを用いました。LAMPでの利用であれば参照系の割合が高いため、今回の検証のようにキャッシュを適切に設定して利用することで、かなりのパフォーマンス改善ができるでしょう。しかし、更新系の処理の多いアプリケーションが中心の場合には、参照系に比べて改善が難しいため、仮想化したサーバでの利用は注意が必要です。 |
||||||||||||||||||||||||
| まとめ | ||||||||||||||||||||||||
|
今回はI/Oの影響がわかるようにMySQLのキャッシュ回りの設定を中心にパラメータを変えてパフォーマンスの検証を行いました。 メモリキャッシュをどの程度割り当てればよいかはサーバの利用状況によって変わりますが、当然のことながらメモリを割り当てるためにはそれ相応の空きメモリが必要となります。 例えばJava/Tomcatのようなシステムに常駐するアプリケーションサーバの場合には、アプリケーションサーバ側に対しても多くのメモリを割り当てる必要があるため、相対的にデータベースに割り当て可能なメモリは少なくなります。 MySQLの配布パッケージ内にもメモリ量に応じた設定ファイルのサンプルがありますが、ゲストOSに割り当てられているメモリ量から単純にパラメータを決めるのではなく、実際に稼動時のメモリの利用状況を見てパラメータを決めるようにしましょう。適切な設定でない場合、スワップを多用することになるなど、パフォーマンス低下の原因にもなりかねませんので注意が必要です。 仮想化は1台のサーバを複数のOSで利用するためコストパフォーマンスにすぐれた運用が可能になりますが、データベースのようなI/O負荷の高いサービスを利用する場合には、そのチューニングの影響は専用サーバで利用するよりも大きなものになってきます。 しかしながら、適切なチューニングを行うことで、仮想化したOS上でもパフォーマンスの低下を抑えることができますので、I/O負荷がかからないようにメモリを有効利用することがパフォーマンスを確保する重要なポイントとなります。 パフォーマンスに不満のある人は、1度設定を見直してみてはいかがでしょうか? |
||||||||||||||||||||||||
|
前のページ 1 2 3 |
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||



