【问题标题】:how to make iostat behave like top如何使 iostat 表现得像 top
【发布时间】:2012-11-24 06:16:00
【问题描述】:

iostat -xzN 5 | grep "^vg\|^Dev" 产生如下输出:

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
vg01-root         0.00     0.00    0.00    0.20     0.00     1.60     8.00     0.00    3.00   3.00   0.06
vg05-vz           0.00     0.00    0.00    0.60     0.00     4.80     8.00     0.01    9.00   9.00   0.54
vg03-vz           0.00     0.00  281.00  128.40  5625.60  1027.20    16.25    42.35  103.54   2.44  99.94
vg02-vz2a         0.00     0.00   28.20   11.40  1416.00   112.00    38.59     0.79   19.84   5.99  23.72
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
vg05-vz           0.00     0.00    0.00    8.60     0.00  7876.80   915.91     0.48   55.70   3.40   2.92
vg03-vz           0.00     0.00  308.20   76.20 10376.00  4433.60    38.53    11.50   30.00   2.60 100.00
vg02-vz2a         0.00     0.00   27.80   24.80   604.80   198.40    15.27     0.49    9.39   4.89  25.72
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
vg05-vz           0.00     0.00    0.00    1.80     0.00   585.60   325.33     0.01    5.78   4.00   0.72
vg03-vz           0.00     0.00  323.20   49.00  9283.20   497.60    26.28     3.48    9.40   2.69  99.98
vg02-vz2a         0.00     0.00   40.20   55.80  2644.80   483.20    32.58     1.14   11.86   4.12  39.58

我希望它像top 一样显示,即清除屏幕并在每次迭代时从顶部开始。我在想是否有办法通过 sed/awk/perl/whatever 进行管道传输,并且每次收到 ^Dev 时都会推送 tput clear

但是怎么做呢?

【问题讨论】:

    标签: perl awk sed iostat


    【解决方案1】:

    您是否考虑过iotop

    也就是说,扔一些粗糙的 Perl 应该不会太难。

    #!/usr/bin/perl
    
    # Adjust options to taste.
    open(IOSTAT, "iostat -d 5 |") || die;
    
    $| = 1;
    while(<IOSTAT>) {
        if (/^Dev/) { system "clear"; print; }
        if (/^vg/) { print; }
    }
    

    【讨论】:

    • 谢谢。有点想找一个单线,但这会做。我也有 iotop,但没有找到任何方法来监控每个磁盘设备的 IO。
    【解决方案2】:

    根据 Jeffrey Hantin 的回应,这里有一个单行版本:

    S_COLORS=always iostat -hz 5 | perl -pe '/avg/ && system(q[clear])'
    

    【讨论】:

      【解决方案3】:

      让手表为您完成工作:

      watch -n<interval> iostat`
      

      【讨论】:

        猜你喜欢
        • 2015-05-11
        • 2017-06-19
        • 2017-01-26
        • 1970-01-01
        • 2016-01-15
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        • 2019-02-19
        相关资源
        最近更新 更多