【问题标题】:Analyzing iostat output分析 iostat 输出
【发布时间】:2012-08-18 07:28:47
【问题描述】:

我的应用程序遇到了性能问题,我的一个嫌疑人是 IO 过多。 iostat 显示每秒写入 10K 块的速率。我怎么知道这是否很多?如何知道具体机器和磁盘的限制?

编辑:按照艾略特的要求:

iostat 输出:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

      16.39    0.00    0.52   11.43    0.00   71.66

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
 cciss/c0d0      315.20         0.00     10341.80          0      51709

正常运行时间:

2:08am  up 17 days 17:26,  5 users,  load average: 9.13, 9.32, 8.73

顶部:

top - 02:10:02 up 17 days, 17:27,  5 users,  load average: 8.89, 9.18, 8.72
Tasks: 202 total,   2 running, 200 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  0.7%sy,  0.0%ni, 90.5%id,  2.9%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:     96556M total,    15930M used,    80626M free,      221M buffers
Swap:   196615M total,       93M used,   196522M free,     2061M cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                 
20027 root      16   0 10.5g 9.8g  12m S   74 10.4   2407:55 /usr/intel/pkgs/java/1.6.0.31-64/jre//bin/java -server -X

谢谢

【问题讨论】:

    标签: performance system-administration iostat


    【解决方案1】:

    视角:

    • 如果是旋转磁盘,那就是高价值。
    • 如果是带有写入缓存的 SSD 或 SAN,这是合理的。

    将 iostat -x 用于广泛和扩展的指标:

    [xxx@xxxxxxxxxx]$ iostat -x 
    Linux 2.6.32-358.6.2.el6.x86_64 (boxname.goes.here)     12/12/2013  _x86_64_    (24 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.57    0.00    0.21    0.00    0.00   99.21
    
    Device:  rrqm/s wrqm/s r/s  w/s  rsec/s wsec/s avgrq-sz avgqu-sz await svctm  %util
    sda        0.06  28.38 0.04 3.99   0.99 259.15    64.58     0.01  2.11  0.55   0.22
    

    %util 是你的朋友。如果您查看 iostat.c(参见:http://code.google.com/p/tester-higkoo/source/browse/trunk/Tools/iostat/iostat.c),您可以看到它通过查看执行 IO 所花费的时间(以处理器滴答计)与已通过的滴答总数来计算此百分比。换句话说,PERCENTAGE-UTIL 是 IO 处于忙碌状态的时间百分比。

    【讨论】:

      【解决方案2】:

      我可以根据经验告诉您,对于大多数系统而言,块写入率非常高。但是,您的系统可能完全有能力处理这个问题——这取决于您拥有的硬件类型。重要的是您的server load 数字和iowait 百分比。如果您的服务器负载很高(即高于系统上的内核数量)并且您的负载主要由 iowait 组成,那么您就有问题了。

      您能否与我们分享您的应用程序运行时iostatuptime 的完整输出以及top -c 输出的快照?

      【讨论】:

      • 谢谢,目前没问题。一旦再次发生,我将分享此信息
      猜你喜欢
      • 2013-02-03
      • 2020-03-15
      • 2015-05-25
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多