ESXiの性能情報は、vSphere Clientを使ってグラフを出力することができる。しかし、グラフは複数同時に表示できないため、詳細な分析には向いていない。
そこで、より詳細に分析する場合は、ESXiにsshログインして、esxtopコマンドを使って情報を取得することが多い。
以下に参考までにesxtopの出力例を記載する。
[root@t3011es60:~] esxtop
------------------------------
2:28:48pm up 82 days 16:16, 556 worlds, 10 VMs, 11 vCPUs; CPU load average: 0.15, 0.10, 0.17
PCPU USED(%): 49 13 20 18 AVG: 25
PCPU UTIL(%): 51 11 21 19 AVG: 26
CORE UTIL(%): 61 40 AVG: 51
ID GID NAME NWLD %USED %RUN %SYS %WAIT %VMWAI
19729 19729 t1082w216 7 92.71 93.99 0.02 583.38 0.0
36145555 36145555 esxtop.4631501 1 1.40 1.43 0.01 95.46
11207011 11207011 t1203w28r 6 1.39 1.54 0.01 579.67 0.1
20007 20007 t3024ce73 6 0.69 0.79 0.02 580.55 0.0
19956461 19956461 t3025ce73 6 0.65 0.71 0.01 580.56 0.0
18899 18899 t1062w28r 6 0.59 0.74 0.01 580.51 0.2
18715 18715 t3031vy11 6 0.41 0.47 0.04 580.82 0.1
2 2 system 113 0.37 0.45 0.00 10948.03
19714 19714 t3023ce72 6 0.27 0.32 0.01 581.01 0.0
19223894 19223894 t1083xbnt 6 0.18 0.21 0.00 581.11 0.0
~(以下略)~
------------------------------
esxtopコマンドは、当然CLIでしか出力をすることはできないため、瞬間値を見る分には問題ないが、グラフィカルにデータの推移を見る用途には使えない。
一定期間の推移を確認したい場合は、esxtopのバッチモードを利用する。このモードでは、一定間隔ごとに性能情報をテキストファイルに出力することが可能になる。さらに、「NMONVisualizer」と呼ばれるツールを使えば、esxtopが出力したファイルをグラフとして表示することができる。
今回、esxtopのバッチモードとNMONVisualizerを組み合わせて、ESXiの性能情報を取得しグラフ化してみた。大変便利だったので、その手順について記載する。
esxtopのバッチモードで性能情報を取得
以下の書式でesxtopを実行する。esxtop -b -a -d 間隔(秒) -n 回数 > 出力先ファイル名
※オプションの意味
・-b : バッチモードで実行
・-a : すべての情報を出力
・-d : 取得間隔を秒で指定
・-n : 取得回数を指定
たとえば、20秒間隔で180回、合計1時間分の性能情報を取得し、/tmp配下に「esxperf_日付_時間.csv」というファイル名で出力させたい場合は、以下の通り実行する。
esxtop -b -a -d 20 -n 180 > /tmp/esxperf_`date +"%Y%m%d_%H%M%S"`.csv
実行後、ファイルサイズを確認してみると、180回のデータで約30MBのサイズになっており、かなりファイルサイズが大きい。
[root@t3011es60:~] du -h /tmp/esxperf_20180419_203356.csv
------------------------------
29.9M /tmp/esxperf_20180419_203356.csv
------------------------------
出力されたファイルはテキストファイルであり圧縮効果が高いので、tarなどで圧縮してからダウンロードした方がよいだろう。
[root@t3011es60:~] cd /tmp/
[root@t3011es60:/tmp] tar zcf esxperf_20180419_203356.csv.tar.gz esxperf_20180419_203356.csv
圧縮前後のファイルサイズを見ておく。30MBだったファイルは1.2MBまでサイズが縮小される。
[root@t3011es60:/tmp] du -h /tmp/esxperf_20180419_203356.csv*
------------------------------
29.9M /tmp/esxperf_20180419_203356.csv ←★圧縮前のサイズ
1.2M /tmp/esxperf_20180419_203356.csv.tar.gz ←★圧縮後のサイズ
------------------------------
Tera Termであれば、「SSH SCOP...」の機能を利用して、出力したファイルを入手することができる。
今回の場合であれば、Fromに「/tmp/esxperf_20180419_203356.csv.tar.gz」、Toに任意のフォルダを指定し「Receive」ボタンを押せば、ファイルがダウンロードできる。
NMONVisualizerを使ってグラフを表示
NMONVisualizerは以下からダウンロード可能である。「NMONVisualizer_2018-04-10.jar」というJavaのファイルをダウンロードする(※注:2018/4/22時点)。NMONVisualizer
https://nmonvisualizer.github.io/nmonvisualizer/
Java Runtimeをインストールした環境であれば、このjarファイルをダブルクリックすれば、NMONVisualizerが起動する。
「File」→「Load...」を選択し、先ほどダウンロードしたesxtopの出力ファイル(解凍済みのもの)を選択する。ファイルに問題がなければ、左ツリーに ESXiサーバーのホスト名と、各種性能情報が表示されるはずである。
なお、ファイル名は拡張子を「.csv」にする必要があるので注意。
実際にいくつかグラフを表示させてみよう。
ESXiサーバーの物理CPUの使用率は、左ツリーの「ESXiホスト名」→「Physical Cpu」で確認することができる。「% Processor Time」、「% Util Time」、「% Core Util Time」の3つのグラフがあるが、物理CPU使用率を見る場合は「% Core Util Time」を見ればよいようだ。
※詳細は本記事の最後に記載した「Processor Utilization Calculations」のURLを参照
仮想マシンごとのグラフも見ることができる。左ツリーの「ESXiホスト名」→「Vcpu」→「仮想マシン名」を選択すればよい。たとえば、CPUのスケジュール待ち時間を表す「CPU Ready」の値は「% Ready」で確認することができる。
同様に仮想マシンごとのディスクの状況も確認することができる。左ツリーの「ESXiホスト名」→「Virtual Disk」→「仮想マシン名」を選択すればよい。IOPSは「Read/sec」や「Write/sec」で確認することができる。
まとめ
vSphere Clientのグラフでは、複数の情報を同時に表示させることができず、性能分析の際に苦労することが多かった。しかし、esxtopとNMONVisualizerを組み合わせれば、詳細な性能情報の調査が可能となり、仮想環境にて性能問題が発生した際の調査手法として、非常に有用であると感じた。
参考
esxtop ユーティリティの使用https://docs.vmware.com/jp/VMware-vSphere/6.0/com.vmware.vsphere.monitoring.doc/GUID-D89E8267-C74A-496F-B58E-19672CAB5A53.html
バッチ モードのコマンドライン オプション
https://docs.vmware.com/jp/VMware-vSphere/6.0/com.vmware.vsphere.monitoring.doc/GUID-F5EB8133-97FE-4A39-9717-A5FC2B3501AF.html
Processor Utilization Calculations
http://vpivot.com/2010/04/09/processor-utilization-calculations/
0 件のコメント:
コメントを投稿