vmstat は OS によっては -t オプションでタイムスタンプを表示できたりするらしいですが、できない場合でも
http://labs.agenda-style.jp/blog/2011/10/vmstat.html
http://nemf.quickboy.com/2011/07/how-to-add-timestamp-to-vmstat-commnad-output/
こんな感じでタイムスタンプをつけることができます。
タイムスタンプがついている vmstat の出力結果から、時間帯毎にCPU使用率を算出する Perl ワンライナーを書いてみました。
% perl -lane '$.>2 and @t=split(q/:/,$F[1]) and $h->{$t[0]}->{sum}+=$F[21]+$F[22] and $h->{$t[0]}->{cnt}++;END{map{printf(qq/%02d\t%.1f\n/,$_,$h->{$_}->{sum}/$h->{$_}->{cnt})}sort keys %$h}' vmstat.log
加工前のファイルがこんな感じとします。
procs memory page disk faults cpu r b w swap free re mf pi po fr de sr s0 s3 s2 s7 in sy cs us sy id 20111216 00:01:02 0 0 0 ... 20111216 00:02:02 0 0 0 ...
出力結果はこんな感じになります。1時台は10%程度です。
00 10.3 01 10.1 02 20.2 03 13.8 (中略) 20 21.8 21 20.3 22 12.5 23 16.6