LoginSignup
3
2

More than 5 years have passed since last update.

jstatのログを即Excelで見れるようにする

Posted at

メモリ関連の調査をしているときにどうしてもExcelで集計したいということを言われたので、とりあえずやってみた。

普段のjstatのログは以下のように出る。

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
512.0  512.0   0.0    0.0   124928.0  6358.9   83968.0    42417.6   65064.0 58754.0 9256.0 7392.2  15501   94.212 15488 1702.193 1796.405

とりあえず日付とカンマ区切りができればそのままExcelで読んでよしなにできそうなので、sedとawkを使ってやってみた。
動作しているアプリケーションがWindows環境なので、あらかじめsedとawkを実行できるようにインストールしておく。
Macで試していたらawkのstrftimeがないと怒られるのでgawkをインストールした。

awk: calling undefined function strftime

で、いろいろ試して以下のようになった。

jstat -gc <process id> 10s | gawk '{print strftime("%Y/%m/%d-%H:%M:%S"), $0; fflush();}' | sed -e 's/^  *//g; s/  */,/g' >> jstat.csv

これで以下の用に出力されるようになる。

2018/04/28-23:28:46,S0C,S1C,S0U,S1U,EC,EU,OC,OU,MC,MU,CCSC,CCSU,YGC,YGCT,FGC,FGCT,GCT,
2018/04/28-23:28:46,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778
2018/04/28-23:28:47,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778

ヘッダにも日付が入ってしまうけどそこは妥協点ということにしておく。

3
2
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
3
2