VMware vCenterでの性能情報についての個人的考察

なんだか久しぶりに書いた。
何かと言うと、VMware vCenterでは、ホスト、ゲストの性能統計情報を収集し、出力することが可能。
これが、デフォルト設定だと非常に使い物にならない、ということ。*1
詳細は以下をどうぞ。


何のことかと申しますと。*2

vSphere ClientでvCenterに接続、メニューから「管理」−「vCenter設定」を実行。
設定画面が表示されたら「統計情報」を選択、「統計間隔」で設定可能。
デフォルトと最大は以下の通り。

○デフォルト

(1)間隔5分	保存期間:1日		統計情報レベル:1
(2)間隔30分	保存期間:1週間		統計情報レベル:1
(3)間隔2時間	保存期間:1ヶ月	統計情報レベル:1
(4)間隔1日	保存期間:1年		統計情報レベル:1

○可能な最大設定

(1)間隔1分	保存期間:5日		統計情報レベル:4
(2)間隔30分	保存期間:1週間		統計情報レベル:4
(3)間隔2時間	保存期間:1ヶ月		統計情報レベル:4
(4)間隔1日	保存期間:5年		統計情報レベル:4

各間隔の統計レベルについては以下の通り。

レベル1:基本メトリック。CPU、メモリ、ディスク、およびネットワークの平均使用量やシステムアップタイム、システムハートビート、およびVMwareDRSメトリックが含まれる。デバイスの統計情報は含まれない。
レベル2:CPU、メモリ、ディスク、およびネットワークカウンタ(平均、合計、最新ロールアップタイプ・最大および最小ロールアップタイプは除く)用のすべてのメトリック(システムアップタイム、システムハートビート、VMwareDRSメトリック)が含まれる。デバイスの統計情報は含まれない。
レベル3:すべてのカウンタグループ(平均、合計および最新ロールアップタイプ・最大および最小ロールアップタイプは除く)のデバイスを含むすべてのメトリックが含まれる。
レベル4:vCenter Serverがサポートするすべてのメトリックが含まれる。

「データベースサイズ」では、上記の統計間隔設定時にどれだけDBサイズが必要かを算出してくれる。

物理ホスト:vCenterで管理されるESX、ESXiサーバの数
仮想マシン:vCenterで管理するESX、ESXiサーバ上で動作するゲストOSの数
予想される必要な容量:上記条件から算出されるDBサイズ

例:

統計間隔:最大設定
統計レベル:すべて4
物理ホスト:4
仮想マシン:50
=============================
予想される必要な容量:37.99GB


なぜこの設定を考慮することが必要か?
それは、仮想環境のパフォーマンスログを取るときに影響する。
統計情報取得対象期間が、(1)〜(4)の保存期間の複数条件に当てはまるとき、統計間隔が長いもの(情報が荒いもの)が適用されてしまう。

例:

昨日のゲストOS上のアプリの応答が遅かったので、仮想環境の昨日1日分の性能情報が知りたい。

統計情報取得日時:1/10 10:00
取得対象:1/9 0:00 〜 1/9 23:59

設定がデフォルトの場合…
①「1/9 0:00 〜 1/9 9:59」の期間は、(2)の保存期間に相当
②「1/9 0:00 〜 1/9 9:59」の期間は、(1)の保存期間に相当

この場合、取得された情報は、すべて①に合わせて、統計間隔(2)の30分間隔という荒い情報になってしまう。

(1)の5分間隔の情報が欲しい場合、「1/9 10:00 〜 1/9 23:59」のものしか取得できない。
しかも、保存される統計情報はリアルタイムで更新されるので、現在時刻が経過すれば、さらに間隔が縮まってしまう。

これが最大設定の場合、保存期間が5日間なので(1)に該当され、しかも1分間隔の詳細な統計情報が得られる。
さらに、2日前、3日前などでも詳細な情報が取得できる。
また、過去1週間、過去1ヶ月、過去1年分などの場合も同じような状態になることは当たり前。

ということで、基本的には最大設定が推奨。
あとはストレージの容量とご相談、ですかね。

もし(1)レベルの情報を、最大設定以上に残したい場合は、毎日バッチでCSVなどにエクスポートしておく、などの対応が必要になる。
これは「vSphere PowerCLI」を利用し、PowerShellにてスクリプトを作成、タスクスケジューラで実行で問題なく仕込み可能。
スクリプトについては、気が向いたら公開できるレベルの簡単なソースをアップする……かな?

*1:あくまで個人的見解

*2:vSphere4.1 Update1」の環境で確認。