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にてスクリプトを作成、タスクスケジューラで実行で問題なく仕込み可能。
スクリプトについては、気が向いたら公開できるレベルの簡単なソースをアップする……かな?