分析iostat输出

时间:2012-08-22 19:57:47

标签: performance system-administration iostat

我的应用程序出现了性能问题,我的一个疑问是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

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

视角:

  • 如果是旋转磁盘,那就是一个很高的值。
  • 如果它是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处于忙碌状态的时间百分比。