先日急遽、負荷試験を行う事になりました。
自身初めての負荷試験のため、jmeterの設定とシナリオ作りに追われ、
sarコマンドの結果をどのように扱うかまで手を回すことができませんでした。
その結果、負荷試験レポートを作成するために、後輩がsarコマンドログの手編集地獄に落ちてしまいました。
悲劇を繰り返さないため改善案です。
概要
課題
-
sar 1 10000 | tee stress_cpu_`hostname`_`date '+%Y%m%d%H%M%S'`.txt
すると、
sar結果の集計が大変であること
すること
- sarコマンドの結果を切り貼りする時間がかかるため、より簡単にする
ステップ
1.sarでバイナリファイルを作成
2.1.で作成したバイナリをsadfで必要な情報のみに削り、tsvに変換する
3.tsvをsqliteにぶっこんで平均idleタイムなどを取得
手順
- 1.sarでバイナリファイルを作成
-
sar -t -u -o sar.out 1 10000
- -t:データファイルに記録されている時刻(UTC)をローカルタイムに変換する
- -u:cpu使用率
- -o:アウトプットファイルの指定
- 参考:システムの状態を可視化する(その1) | K4750.net
- 参考:sarによるボトルネック発見の手順(というかsysstatの使用法)をまとめてみた - end0tknr's kipple - 新web写経開発
-
- 2.1.で作成したバイナリをsadfで必要な情報のみに削り、TSVに変換する
-
sadf -t -- -u -s 10:09:57 -e 10:10:00 sar.out | grep idle > sadf.tsv
- -s:出力対象のスタート時間->負荷試験の開始時間を設定する
- -e:出力対象の終了時間->負荷試験の開始時間を設定する
- ポイント:負荷試験の開始時間と終了時間に合わせて-sと-eを指定する
- ポイント:grepすることでtsvを軽くして、サーバーからのログ取得をスムーズに
- 参考:sarによるボトルネック発見の手順(というかsysstatの使用法)をまとめてみた - end0tknr's kipple - 新web写経開発
- 参考:sar で収集したリソース使用情報が sadf コマンドで TSV として出力できる - 映画は中劇
-
- 3.tsvをsqliteにぶっこんで平均idleタイムなどを取得
以上です。
生き返れ、後輩!