ESXiは基本的にvSphere ClientまたはvSphere Web Clientから操作を行いますが、SSHを有効としてESXiシェルを使って管理することも可能です。ESXiのesxtopコマンドを使ってESXiホストのパフォーマンスを解析してみます。ESXiでSSHを有効にするにはESXiの基本設定のページを参照してください。
■esxtopコマンド
ESXiにrootでSSHにログインしesxtopコマンドを実行してみます。
~ # esxtop 1:09:34am up 8 min, 443 worlds, 2 VMs, 3 vCPUs; CPU load average: 0.01, 0.09, 0.00 PCPU USED(%): 0.7 3.7 0.7 0.8 AVG: 1.5 PCPU UTIL(%): 0.8 2.9 1.2 1.2 AVG: 1.5 ID GID NAME NWLD %USED %RUN %SYS %WAIT %VMWAI 5108 5108 VMware vCenter 8 2.18 2.32 0.03 797.73 0.2 6768 6768 esxtop.36351 1 1.36 1.47 0.00 98.54 2 2 system 71 0.34 0.39 0.00 7099.64 3115 3115 sh.34432 1 0.16 0.17 0.00 99.83 4326 4326 linux 8 0.14 0.16 0.00 799.93 0.0 8 8 helper 152 0.09 0.10 0.00 15200.00 1936 1936 hostd.33835 18 0.03 0.04 0.00 1800.00 2508 2508 rhttpproxy.3412 8 0.03 0.03 0.00 800.00 2432 2432 logchannellogge 1 0.02 0.03 0.00 99.98 3297 3297 vpxa.34528 8 0.02 0.02 0.00 800.00 6611 6611 sshd.36274 1 0.01 0.01 0.00 100.00 1684 1684 vmware-usbarbit 2 0.01 0.01 0.00 200.00 1295 1295 net-lacp.33414 3 0.01 0.01 0.00 300.00 3925 3925 openwsmand.3484 3 0.01 0.01 0.00 300.00 1512 1512 ntpd.33627 2 0.01 0.01 0.00 200.00 1328 1328 vmkiscsid.33433 2 0.00 0.01 0.00 200.00 9 9 drivers 13 0.00 0.00 0.00 1300.00 1832 1832 storageRM.33786 1 0.00 0.00 0.00 100.00 |
Linuxのtopコマンドと出力は非常によく似ています。デフォルトではCPUに関する情報が5秒間隔でリアルタイムに更新され表示されます。例えばここで「m」キーを押すとメモリに関する情報が表示されます。
1:14:33am up 13 min, 445 worlds, 2 VMs, 3 vCPUs; MEM overcommit avg: 0.69, 0.61, 0.35 PMEM /MB: 6142 total: 1027 vmk, 2178 other, 2936 free VMKMEM/MB: 6113 managed: 326 minfree, 3022 rsvd, 3091 ursvd, high state PSHARE/MB: 28 shared, 22 common: 6 saving SWAP /MB: 0 curr, 0 rclmtgt: 0.00 r/s, 0.00 w/s ZIP /MB: 0 zipped, 0 saved MEMCTL/MB: 0 curr, 0 target, 6260 max GID NAME MEMSZ GRANT SZTGT TCHD TCHD_W SWCUR 5108 VMware vCenter 8192.00 1731.64 1980.65 1064.96 983.04 0.00 4326 linux 2048.00 208.00 254.46 20.48 20.48 0.00 1936 hostd.33835 67.34 38.35 42.18 10.59 10.59 0.00 4336 sfcb-ProviderMa 28.67 19.36 21.29 9.95 9.95 0.00 3297 vpxa.34528 21.14 14.02 15.41 2.31 2.31 0.00 4342 sfcb-ProviderMa 16.48 13.39 14.73 3.12 3.12 0.00 1328 vmkiscsid.33433 16.32 1.20 1.31 0.05 0.05 0.00 935 vobd.33210 13.18 1.56 1.71 0.13 0.13 0.00 4339 sfcb-ProviderMa 9.23 6.18 6.80 4.59 4.59 0.00 2508 rhttpproxy.3412 8.48 3.23 3.55 0.72 0.72 0.00 874 vmsyslogd.33178 7.84 5.55 6.10 3.77 3.77 0.00 4333 sfcb-ProviderMa 7.48 2.25 2.47 0.25 0.25 0.00 4519 sfcb-ProviderMa 6.79 2.12 2.34 0.52 0.52 0.00 983 vmkeventd.33251 6.57 2.16 2.38 2.15 2.15 0.00 |
その他、以下のキーで項目別にリソース消費状況を確認することができます。
キー | 項目 |
c | CPU情報 |
m | メモリ情報 |
d | アダプタ単位のストレージ詳細 |
u | デバイス単位のストレージ詳細 |
v | 仮想マシン単位のストレージ詳細 |
n | ネットワーク情報 |
i | 割り込みの発生頻度 |
p | CPU消費電力等 |
■esxtopバッチモード
上記のesxtopコマンド対話モードでリソースの使用状況が確認できるわけですが内容をCSVファイルに出力しそれをツールを使って解析することが可能です。
まずesxtopコマンドを出力するCSVファイルの構成情報を出力します。esxtopコマンドを実行してWキーを押します。
1:39:54am up 39 min, 446 worlds, 2 VMs, 3 vCPUs; CPU load average: 0.01, 0.01, 0.01 PCPU USED(%): 7.3 17 58 28 AVG: 28 PCPU UTIL(%): 8.1 24 100 28 AVG: 40 Save config file to (Default to : //.esxtop50rc): [ Enterを入力 ] ID GID NAME NWLD %USED %RUN %SYS %WAIT %VMWAI 15974 15974 esxtop.41038 1 65.20 98.06 0.00 0.00 1936 1936 hostd.33835 18 62.43 62.00 0.44 1699.11 3297 3297 vpxa.34528 8 6.33 6.31 0.00 783.08 15967 15967 sfcb-HTTP-Daemo 1 5.21 3.93 0.00 94.14 5108 5108 VMware vCenter 8 1.79 1.72 0.05 790.88 0.0 874 874 vmsyslogd.33178 3 1.68 1.66 0.00 294.48 2 2 system 71 0.42 0.41 0.00 7032.55 6611 6611 sshd.36274 1 0.13 0.13 0.00 98.85 3925 3925 openwsmand.3484 3 0.06 0.05 0.00 292.96 2432 2432 logchannellogge 1 0.05 0.05 0.00 98.92 8 8 helper 154 0.04 0.04 0.00 15230.43 1295 1295 net-lacp.33414 3 0.02 0.02 0.00 296.41 1 1 idle 4 0.00 400.00 0.00 0.00 9 9 drivers 13 0.00 0.00 0.00 1285.55 10 10 ft 5 0.00 0.00 0.00 494.42 11 11 vmotion 1 0.00 0.00 0.00 98.88 2099 2099 sh.33924 1 0.00 0.00 0.00 98.89 2146 2146 sensord.33947 1 0.00 0.00 0.00 98.84 |
これで/.esxtop50rcが出力されます。ファイルの中身は以下のようになっています。
~ # cat /.esxtop50rc ABcDEFghij aBcDefgHijKLmnOpq ABCdEfGhijkl ABcdeFGhIjklmnop aBCDEFGH AbcDEFGHIJKLmno ABCDeF ABCDe 5c |
上記の中身は以下のような意味となります。
項目 | 値 |
ABcDEFghij | CPU情報 |
aBcDefgHijKLmnOpq | メモリ情報 |
ABCdEfGhijkl | アダプタ単位のストレージ詳細 |
ABcdeFGhIjklmnop | デバイス単位のストレージ詳細 |
aBCDEFGH | 仮想マシン単位のストレージ詳細 |
AbcDEFGHIJKLmno | ネットワーク情報 |
ABCDeF | 割り込みの発生頻度 |
ABCDe | CPU消費電力等 |
デフォルトだと上記の全てを記録するようになります。これでは記録されるレコードも膨大なものとなりますので、一定に絞り込むことが奨励されます。このファイルを直接編集して必要なもののみ記載するように致します。
~ # vi /.esxtop50rc ABcDEFghij aBcDefgHijKLmnOpq [ CPUとMEMのみ取得 ] |
編集したファイルを構成情報として読み込ませ、CSVファイルに出力します。
~ # esxtop -n 10 -b -c /.esxtop50rc > /tmp/perfomance.csv |
-n 10はレコード数が10というオプションです。-bはバッチモード、-cは構成ファイルの指定です。これで/tmp/perfomance.csvにesxtopコマンドの内容が出力されます。出力は結構な量となりますので注意してください。
これでCSVファイルとして出力されます。このCSVファイルをもとにビジュアルに表示するツールなんかも存在しますので試してみてください。