Linux vmstatで時刻を表示
トラブル時や性能試験時に、リアルタイムでサーバリソースを見るときに、
vmstat を使うことが多いのですが、リソース情報と一緒に時刻も表示させ
る方法をメモ。
・コマンド
vmstat -a 1 | perl -MPOSIX -pe 'BEGIN{$|=1} print strftime q{%Y/%m/%d %H:%M:%S }, localtime'
・結果
2013/03/01 10:58:31 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 2013/03/01 10:58:31 r b swpd free inact active si so bi bo in cs us sy id wa st 2013/03/01 10:58:31 1 0 0 5772388 548932 888980 0 0 0 48 17 17 4 1 94 0 0 2013/03/01 10:58:32 0 0 0 5770884 548932 890680 0 0 0 0 45 41 1 0 99 0 0 2013/03/01 10:58:33 3 0 0 5732472 548964 928772 0 0 0 4 848 563 56 11 34 0 0 2013/03/01 10:58:34 0 0 0 5770768 548928 890304 0 0 0 88 418 226 38 5 57 1 0 2013/03/01 10:58:35 0 0 0 5770908 548928 890304 0 0 0 0 18 27 0 0 100 0 0
・補足
厳密にメモリの空き容量(active/inactive)を見る場合は、vmstat に -a オプションを
付けることをお勧めします。
http://192168111.blog71.fc2.com/blog-entry-1.html
http://www.atmarkit.co.jp/flinux/rensai/tantei01/bangai01c.html
・javaのGC関連見るのにも使えます。
$ jstat -gc -h 20 [PID] 1s 999999999 | perl -MPOSIX -pe 'BEGIN{$|=1} print strftime q{%Y/%m/%d %H:%M:%S }, localtime' 2013/01/10 15:15:23 S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 2013/01/10 15:15:23 6784.0 6528.0 4210.2 0.0 1559552.0 82950.9 1572864.0 210220.8 65536.0 28200.6 202 1.785 1 0.025 1.810 2013/01/10 15:15:24 6784.0 6528.0 4210.2 0.0 1559552.0 155116.4 1572864.0 210220.8 65536.0 28200.8 202 1.785 1 0.025 1.810 2013/01/10 15:15:25 6784.0 6528.0 4210.2 0.0 1559552.0 199280.1 1572864.0 210220.8 65536.0 28200.8 202 1.785 1 0.025 1.810 $
・以下でも時刻は表示できます。
vmstat -a 1 | awk '{print strftime("%Y/%m/%d %H:%M:%S" ), $0}'
・以下は見難いです。
vmstat -a 1 -t