vSphere

大規模環境のためのvCenter Server 5.1 データベースのパフォーマンス改善とベストプラクティス その2

データベースパフォーマンスの改善
このセクションではその1 に引き続き、vCenter Server 5.1 の統計情報管理に関する主要な改善点を説明します。vCenter Server は、大量のデータを収集保持しており、データベースのパフォーマンスに大きな影響を受けます。
vSphere5.1 では、主要な2つの改善点があります。
・データベースのストアドプロシージャ改善による、ロールアップとTopN プロシージャ部分のリソースオーバヘッドの削減
・効率的なハイレベル統計情報のサポート
具体的には下記3つの最適化により、上記の改善を実現しています。
・ステージングテーブルの除去
・統計テーブルのパーティション
・ストアドプロシージャの再構成

ステージングテーブルの除去
vSphere4.1 とvSphere5.0 では、ステージングテーブルを用い、大規模環境でバースト的に生じる統計情報を収容していました。ステージングテーブルには3つの種類があります。1つ目のステージングテーブルは、5分間の統計としてvCenter Server に使用されるものです。一定間隔の後、このテーブルは2つ目のステージングテーブルに切り替わります。平行して、いっぱいになった2つ目のステージングテーブルは解析され、全ての5分間の統計情報は、過去1日間のテーブルに取り込まれます。3つ目のステージングテーブルは、ステージングテーブル間の移動をスムーズにするためのバッファーとして使用します。
しかしvSphere5.1 でサポートする大規模なインベントリー管理のためには、よりスケーラブルなソリューションが必要となります。vSphere5.1 ではこれらのステージングテーブルを除去し、代わりに統計テーブルをパーティションすることでこの問題を解決しています。この変更により、vCenter Sever は5分間の統計を、過去1日間のテーブルに直接取り込むことで、統計情報の収集プロセスを大幅に改善しました。ステージングテーブルの除去により、より堅牢に統計情報を保持することが可能となります。VMware ナレッジベース(KB2011523, KB1003878)でより多くの関連情報をご確認いただけます。
表2は、1時間あたりに取り込まれる統計情報を収集レベル毎に表した物です。例えば収集レベル4の場合、付記に記載のある1000台のホスト(32CPU, 2000Datastore, 4NIC)と、10000台の起動したVM(1vCPU, 1disk, 1NIC)環境で、1時間あたり8000万の統計情報が収集されます。環境によっては異なる数の統計情報が収集されるかもしれません。この表は、統計レベル毎のI/Oアクティビティ(KBps)も表しています。

表2. テスト環境でvCenter Server が収集し、データベースにプッシュするレベル毎の統計情報数

ステージングテーブルの除去は、統計情報の取り込みロジックを再設計することを可能にし、データベースのリソースオーバヘッドを削減し、1回にデータベースに保存できる統計情報の数を増やすことで、vCenter Server のスケーラビリティを拡張しました。

統計テーブルのパーティション
vCenter Server の統計テーブルには3つのI/O ソースが関係してきます。統計情報の取り込み、異なる統計情報間隔の間でのロールアップ、期限が切れた統計情報の削除です。これらのI/O は統計テーブルの競合を起こし、オペレーションに長時間でゆらぎのある遅延をもたらします。もともと日次、週次、月次、年次の統計情報毎に1つのテーブルがあり、このテーブルは非常に大きな規模のインベントリーになる可能性があります。vSphere5.1 は統計テーブルを再設計しパーティションすることで競合を削減し、パフォーマンスを改善します。
表3. 統計テーブルを小さなサブテーブルに分割し、それぞれが短い時間間隔の統計を保持します。例えば日次の統計情報テーブルはサブテーブルにパーティションされ、それぞれのサブテーブルは30分の統計情報のみ保持します。
vSphere5.1 はこれらの変更により
・テーブルへの取り込みが大幅に改善されました。
・ロールアップの性能が大きく改善されました。ロールアッププロセスは適切に調整され、ロールアップ手順のパフォーマンスは向上し、表4が示す通りの時間となりました。
・データ削除時のパフォーマンスが大幅に改善され、事実上ディスクへの全てのI/O が排除されました。期限の切れた統計情報の削除はデータの期限が切れた際の簡単な処理になり、削除時間を数秒にまで削減しました。
・高い統計レベルが以前に比べてより効率的にサポートされるようになりました。

表4. SQL サーバで異なるレベルの統計情報を収集した際のロールアップ平均時間

ストアドプロシージャの再構成
ここまで述べてきた変更に加えて、vSphere5.1 には過去のリリースに比べ効率化されたストアドプロシージャが含まれています。例えばデータセンターとクラスターのグラフでは、CPU 使用率Top10 の仮想マシンを表示することが可能です。このグラフは、 CPU 使用率、メモリーといった、TopN の仮想マシンを決めるため統計に数学的手法を使用するTopN クエリーから計算され、TopN の日次のテーブルに格納されます。これら日次のTopN 統計情報は、定期的に週次、月次、年次のテーブルにロールアップされます。これらTopN の手順は、より効率的に書き換えられています。かつては10分かかっていたかもしれない処理が、今では完了まで1分未満となります。これらの変更により、ページをロードするUI のパフォーマンスを改善し、データベースのI/O を削減します。

このセクションでは、vCenter Server データベースの具体的な改善内容を説明しました。引き続きその3 では、データベースパフォーマンスのためのベストプラクティスをご紹介していきます。
関連記事はこちら(その1 その3 )をご覧ください。