負荷テストのtop
コマンドの
環境に
とりあえず、
参考
前提
OS
以下、linux で 動作確認を 行っています。 cat /etc/redhat-release --------------------------- CentOS release 6.8 (Final) ---------------------------
top
コマンドの出力フォーマット
CentOS release 6.8
のデフォルト設定だと、 top
コマンド出力結果は以下のようになります。
この出力結果を csv 化する Python スクリプトを 作成しました。 top -------------------------- top - 14:04:02 up 117 days, 17:32, 1 user, load average: 0.05, 0.07, 0.12 Tasks: 111 total, 1 running, 110 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st Mem: 1020064k total, 862356k used, 157708k free, 268260k buffers Swap: 2097148k total, 28872k used, 2068276k free, 264832k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1304 mongod 20 0 457m 4788 1756 S 0.7 0.5 678:55.42 mongod 30448 postgres 20 0 211m 1184 960 S 0.3 0.1 15:40.59 postmaster 30516 ntp 20 0 30740 1156 988 S 0.3 0.1 3:04.12 ntpd 1 root 20 0 19232 700 476 S 0.0 0.1 0:01.41 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:05.42 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 1:46.48 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:22.17 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:04.69 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 --------------------------
スクリプトの 使い方
以下スクリプトの
0.ダウンロード
wget
が
wget https://gist.githubusercontent.com/kemsakurai/3cca7355c992c6be8665f725533f3164/raw/c311f39ff1829364f01a2882d57ae17d55f3bfd7/top_2_csv.py
から
1.top コマンドの 出力結果を 取得
top
コマンドで
top
をバッチモードで リダイレクトする top -b -d 1 -n 1000 >> top_result.txt
2.Python スクリプトの 実行。 サマリファイルの 出力
入力ファイルから、
コマンド
python top_2_csv.py top_result.txt SUMMARY
OUTPUT
ls -1 *.csv -------------- top_result.txt_cpu_summary.csv top_result.txt_load_average.csv top_result.txt_memory_summary.csv top_result.txt_task_summary.csv --------------
csvファイルの
説明
4つ csv ファイルが出力されます。 ファイルの 内容は 以下の 通りです。 - 1.{入力ファイル名}_cpu_summary.csv
時刻ごとのcpu使用時間を 出力します。 - 2.{入力ファイル名}_load_average.csv
時刻ごとのロードアベレージを 出力します。 - 3.{入力ファイル名}_memory_summary.csv
時刻ごとのメモリ使用率を 出力します。 - 4.{入力ファイル名}_task_summary.csv
時刻ごとのタスク状況を 出力します。
- 1.{入力ファイル名}_cpu_summary.csv
3.Python スクリプトの 実行。 プロセス ID を 指定する。
プロセス ID を
* コマンド
python top_2_csv.py top_result.txt 1304
- プロセス番号付きの
csvが 出力されます。 ls -1 *.csv -------------- top_result.txt_1304.csv --------------
csv のtop
コマンドの
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1304 mongod 20 0 457m 4788 1756 S 0.7 0.5 678:56.33 mongod
上手く 動かない ところ
top_2_csv.py
内で
if i == 2 or i == 7 or i == 11 or i == 12 or i == 13:
この要素番号が、
上記の
その他の サーバリソースの モニタリング結果を csv に 出力する 方法
top
コマンドに
以下、
top コマンドの 結果を json に 変換して json から csv に 変換する
topparser と、
一旦
以下、
devalexqt/topparser: Parse linux TOP command output to JSON format
How to import JSON data into Google Spreadsheets in less than 5 minutes
nmon を 使う
nmon
の
出力結果はnmon analyser
で
Glances を 使う
Glances もexport
オプション指定で、
以下、
htop
、atop
等は
以上です。
コメント