0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ESXi7.0 パフォーマンスログを日毎取得(esxtop+cron)

Last updated at Posted at 2022-01-12

環境

  • 作業対象
    ESXi7.0
  • 作業環境
    windows10
    、java8u311(NMONVisualizerversionのファイル形式jarを実行)
    、NMONVisualizerversion (2021-04-04)

目的

数日間仮想マシンに負荷をかけた際に、ESXiホストのストレージI/O日毎に区切ったログを出力させる。

課題

esxtop > xxxx.csv で対処するとログアウト時にコマンドが終了する。
ログインしたまま対応できる環境だとしても1つのファイルが容量が大きくなりすぎる。

方法

  • 1.esxtopコマンドの設定ファイルを作成
  • 2.設定ファイルを配置
  • 3.csvファイル出力をさせるスクリプト作成
  • 4.日毎でバックグラウンド実行させるためにcron登録
  • 5.csvファイルをNMONVisualizerでグラフ表示

作業詳細

esxtop

スクリーンショット 2021-12-26 192613.png

h

Switch Displayの項目をみて取捨選択をする。
今回はストレージI/Oが目的なので、u:disk device以外の項目は出力させないようにします。

1.png

ctrl+cを押下しトップ画面に戻る
※トップ画面自体はSwitch display表記上のc:cpuに該当します。

f

不要な取得項目を停止する。
デフォルト値
スクリーンショット 2021-12-26 192756.png

※印は取得項目

abdefk

※印を消してenterを押下すると、取得項目がなくなり黒い画面に切り替わります。
スクリーンショット 2021-12-26 193548.png

◆上記c:cpuで行った取得項目の除外を
 i:interrupt、m:memory、 n:network、 d:diskadapter、 v:diskVM、 p:powermgmt、 x:vsanでも実施する。

u

値の取得をしたいDeviceに表示切替をする。
スクリーンショット 2021-12-26 195206.png

f

フィールド設定画面に切り替えをする。
スクリーンショット 2021-12-26 195319.png

b f i

DEVICE、 IOSTATSのみ取得に設定をする。
スクリーンショット 2021-12-26 195429.png
enterを押下
スクリーンショット 2021-12-26 195656.png

W(※大文字)

取得対象を設定したファイル(esxtop60rc)出力を空白のままでenterを押下する。
スクリーンショット 2021-12-26 195840.png

ctrl+cを押下し、通常コマンドプロンプトに戻ります。

ls -al

.esxtop60rcがエクスポートされていることを確認する。
スクリーンショット 2021-12-26 200209.png

esxtop -export-entity config

エクスポートしたconfigはesxtopで表示されていたdevice名やプロセス名称の一覧です。

ls -al

configファイルが出力されていることを確認する。

スクリーンショット 2021-12-26 202243.png

vi config

Device以外は不要なので画像と同じく行削除し保存をする。
スクリーンショット 2021-12-26 202822.png

  • 2.設定ファイルを配置
mkdir /vmfs/volumes/<外部ストレージ・datastore1>/<任意フォルダ>

※ログイン直下ディレクトリでは容量制限があるため、専用フォルダを作成する。

mv .esxtop60rc  /vmfs/volumes/<外部ストレージ・datastore1>/<任意フォルダ>
mv config  /vmfs/volumes/<外部ストレージ・datastore1>/<任意フォルダ>
cd /vmfs/volumes/datastore1/esxtop
ls -al

スクリーンショット 2021-12-26 204006.png

  • 3.csvファイル出力をさせるスクリプト作成
vi esxtop.sh

下記内容を環境に合わせて編集する。
一分間に一回取得する設定としています。

# !/bin/sh
date=$(date "+%Y%m%d_%H%M%S")
hostname=$(hostname)_
exportfile="esxtop_$hostname$date"
cd /vmfs/volumes/<外部ストレージ・datastoreX>/<任意フォルダ>
nohup esxtop -import-entity config -c .esxtop60rc -d 60 n $1 -b > $exportfile.csv
vi /var/spool/cron/crontabs/root

cronへスクリプトを追記する。ESXiはUTCで稼働している為、日本時間に合わせ毎日15:00開始にしています。
一分毎に取得するesxtopを1440回繰り返し一日分を取得できるようにしています。
追記した行はESXiのシャットダウンで消える仕様となっています。

# min hour day mon dow command
1    1    *   *   *   /sbin/tmpwatch.py
1    *    *   *   *   /sbin/auto-backup.sh ++group=host/vim/vmvisor/backup.sh
0    *    *   *   *   /usr/lib/vmware/vmksummary/log-heartbeat.py
*/5  *    *   *   *   /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh
00   1    *   *   *   localcli storage core device purge
*/10 *    *   *   *   /bin/crx-cli gc
00   15   *   *   *   /vmfs/volumes/<外部ストレージ・datastorex>/<任意フォルダ>/esxtop.sh 1440 & ###この行を追加####
cat /var/run/crond.pid
<プロセスID>

稼働中crondのプロセスIDを確認する。

kill -HUP <プロセスID>

crondを停止

/usr/lib/vmware/busybox/bin/busybox crond

crondを再実行

cat /var/run/crond.pid
<プロセスID>

プロセスIDが停止前と違う値になっていることを確認する。

▼翌日以降はcsvファイルがエクスポートされています。

  • 5.csvファイルをNMONVisualizerでグラフ表示

/vmfs/volumes/<外部ストレージ・datastorex>/<任意フォルダ>/esxtop_<ホスト名>_yyyymmdd_150000.csv
tera termで上記csvファイルを作業端末へ保存します。

NMONVisualizerversion (https://nmonvisualizer.github.io/nmonvisualizer/)
を実行し、左上メニュー内のFile>Loadを選択します。

スクリーンショット 2022-01-04 093948.png

csvファイルをLoadさせます。
スクリーンショット 2022-01-04 122613.png

左メニューから確認をしたいDeviceを選択する。
最大値は環境ごとに異なるため、動作影響がでるまで負荷をかけた結果と比較することになるかと思います。
今回はI/Oに焦点を当てていますがcsvファイルにはcpuとメモリのデータも含まれています、比較するのに活用してください。
スクリーンショット 2022-01-04 122925.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?