linux查看iostat,

  linux查看iostat,

  Linux iostat监控IO状态——一个故事@MySQL DBA

  Linux iostat监控IO状态2010-03-1 13:13分类:Linux,技术详情标签:Linux 22,421次查看Linux系统存在性能问题。一般我们可以通过top、iostat、free、vmstat等命令来检查初步的定位问题。Iostat可以为我们提供丰富的IO状态数据。

  1.基本用途

  $iostat -d -k 1 10

  参数-d表示显示设备(磁盘)的使用状态;-k某些以块为单位的列被强制使用千字节为单位;10表示数据显示每1秒刷新一次,总共显示10次。

  $iostat -d -k 1 10

  设备:TPS kB _ read/s kB _ wrtn/s kB _ read kB _ wrtn

  sda 39.29 21.14 1.44 441339807 299999 200535

  sda 1 1623 523

  sda 2 1.32 1.43 4.54 2983473948

  sda 3 6.30 0.85 24.95 178868686686

  sda 5 0.85 0.46 3.40 9543503 70970151535

  sda6

  sda7 0.00 0.00

  sda8 0.00 0.00 0.00

  sda9 0.00

  60.68 18.35 71.43 568686868686

  设备:TPS kB _ read/s kB _ wrtn/s kB _ read kB _ wrtn

  100.04 5056 100

  sda1 0.00 0.00 0

  Tps:表示每秒发送到设备的传输次数。“一次传输”是指“一次I/O请求”。多个逻辑请求可以合并成一个I/O请求。“一次传输”请求的大小未知。

  KB_read/s:每秒从设备读取的数据量(驱动器表示);KB_wrtn/s:每秒写入设备的数据量(驱动器表示);KB_read:读取的数据总量;KB_wrtn:写入的数据总量;这些单位是千字节。

  在上面的例子中,我们可以看到磁盘sda及其分区的统计信息。当时磁盘的总TPS是39.29。这里是每个分区的TPS。(因为是瞬时值,所以总TPS并不严格等于每个分区的TPS之和)

  2.-x参数

  我们可以通过使用-x参数获得更多的统计数据。

  iostat -d -x -k 1 10

  设备:rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-SZ avgqu-SZ await SVC TM % util

  sda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28

  设备:rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-SZ avgqu-SZ await SVC TM % util

  sda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20

  Rrm/s:每秒合并多少个与该设备相关的读请求(当系统调用读取数据时,VFS向每个FS发送请求,如果FS发现不同的读请求读取同一块的数据,FS会合并这个请求);Wrqm/s:每秒有多少与此设备相关的写请求被合并。

  Rsec/s:每秒读取的扇区数;Wsec/:每秒写入的扇区数量。r/s:每秒向设备发出的读取请求数;w/s:每秒向设备发出的写请求数;

  Await:每个IO请求的平均处理时间(以微秒和毫秒为单位)。这里可以理解为IO的响应时间。一般情况下,系统IO的响应时间应该小于5ms,但如果大于10ms,响应时间会更大。

  %util:统计时间内的所有IO处理时间除以总统计时间。例如,如果统计间隔为1秒,设备正在处理IO 0.8秒,空闲0.2秒,则设备的% util=0.8/1=80%,因此该参数暗示了设备的繁忙程度。一般来说,如果这个参数是100%,意味着设备正在接近满负荷运行(当然,如果是多磁盘,即使%util是100%,因为磁盘的并发性,磁盘使用量也不一定达到瓶颈)。

  3.-c参数

  Iostat还可以用于获取一些cpu状态值:

  iostat -c 1 10

  平均CPU:%用户%好的%系统%低等待%空闲

  1.98 0.00 0.35 11.45 86.22

  平均CPU:%用户%好的%系统%低等待%空闲

  1.62 0.00 0.25 34.46 63.67

  4.一般用法

  $iostat -d -k 1 10 #查看TPS和吞吐量信息

  Iostat -d -x -k 1 10 #检查设备利用率(%util)和响应时间(await)

  Iostat -c 1 10 #查看cpu状态

  5.个案分析

  $iostat -d -k 1 grep sda10

  设备:TPS kB _ read/s kB _ wrtn/s kB _ read kB _ wrtn

  60.72 18.95 71 . 5686868666687

  299.02 4266.67 129.41 4352 132

  sda 10 483.84 4589.90 45544 456667

  218.00 3360.00 100.00 3360 100

  sda 10 546.00 8784.00 124.00 8784 124

  sda 10 13232.00 136.00 13232 136

  如上图所示,平均每秒磁盘传输次数约为400次;磁盘每秒读取5MB左右,写入1MB左右。

  iostat -d -x -k 1

  设备:rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-SZ avgqu-SZ await SVC TM % util

  sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29

  sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25

  sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24

  可以看到磁盘的平均响应时间为5ms,磁盘利用率为80。磁盘响应正常,但是已经很忙了。

  参考资料:

  Linux man iostatHow如何计算其结果

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: