vmstatに時間を表示させる
普通、vmstatの出力は
[nashuaki@hostname ~]$ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 72 45088 165436 7063584 0 0 0 5 0 0 0 0 99 1 0 0 0 72 45088 165436 7063584 0 0 0 0 1011 31 0 0 100 0 0
こんな感じだけど、
負荷試験時とか、
vmstatの値をファイルにとっておきたいとき、
時間が出力されてないと、ひじょーに不便!
ってことで、
[nashuaki@hostname ~]$ vmstat 1 | awk '{print strftime("%H:%M:%S"), $0}' 22:29:02 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 22:29:02 r b swpd free buff cache si so bi bo in cs us sy id wa st 22:29:02 1 0 72 44460 165436 7063720 0 0 0 5 0 0 0 0 99 1 0 22:29:03 0 0 72 44460 165436 7063720 0 0 0 0 1008 40 0 0 100 0 0
みたいな感じで時間が表示される。
が、
これをファイルにまんまリダイレクトさせちゃうと、
バッファリングされちゃって、
tail -fとかでうまいことみれなかった。
そんなたびたび使うもんでもないけど、
rubyとかperlとかでするべきかねーε=(。・д・。)
ちなみに、
[nashuaki@hostname ~]$ vmstat
では、サーバの平均値しかとれないっぽいので
必ず、インターバル(上のシェルでは1sec)で取得する。
久々に負荷試験することになったーε=(。・д・。)
うまくいきますよーに(´ω`。)