iostat はこんな感じになっていて、
Thu Nov 11 00:01:01 2012 r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device 0.0 6.0 0.0 0.0 0.0 0.1 0.0 13.7 0 5 ...... 0.0 12.0 0.0 0.1 0.0 0.2 0.0 11.2 0 9 ...... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ...... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ......
サービスタイム(asvc_t)でソートしてストレージで1回のI/Oリクエストのレスポンスが遅い時間帯を見たいときとか、時刻がわからなくなって見ずらかったりする。
そんな時は
$ perl -i.org -nle '/^(\w.+)$/ and $d=$1;print qq/$d\t$_/' iostat.log
と、各行に時刻を入れると、
Thu Nov 11 00:01:01 2012 r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device Thu Nov 11 00:01:01 2012 0.0 6.0 0.0 0.0 0.0 0.1 0.0 13.7 0 5 ...... Thu Nov 11 00:01:01 2012 0.0 12.0 0.0 0.1 0.0 0.2 0.0 11.2 0 9 ...... Thu Nov 11 00:01:01 2012 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ...... Thu Nov 11 00:01:01 2012 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ...... Thu Nov 11 00:01:01 2012 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ......
こんな風になるので、
$ sort -k 13 -nr iostat.log Thu Nov 11 19:17:31 2012 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1003.7 0 100 Thu Nov 11 19:41:32 2012 1.0 0.0 0.0 0.0 0.0 0.9 0.0 937.4 0 94 Thu Nov 11 19:37:32 2012 1.0 0.0 0.0 0.0 0.0 0.9 0.0 926.5 0 92 ...
sort したりしても見やくなる。
最初から各行に時刻が入るようにしておけばよいという話もありますが、既に取得しているデータを分析する場合などそうもいかないので。