Linux系统出现了性能问题,一般我们可以通过top.iostat,vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。 www.gimoo.net iostat结果分析 [kefu@SZ-8 linux]$ iostat -x -k Linux 2.6.-.el5_cyou_1.0 (SZ-8.) // avg-cpu: %user %nice %system %iowait %steal %idle . 0. 2. 0. 0. . Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0. . 0. . . . . 0. 0. 0. 0. sda1 0. 0. 0. 0. 0. 0. . 0. 2. 2. 0. sda2 0. 0. 0. 0. 0. 4. . 0. 1. 0. 0. sda3 0. . 0. . 8. . . 0. 0. 0. 0. sda4 0. 0. 0. 0. 0. 0. 2. 0. . . 0. sda5 0. 1. 0. 0. 0. 8. . 0. 1. 0. 0. sda6 0. 0. 0. 0. 0. 0. 8. 0. 5. 4. 0. sda7 0. 0. 0. 0. 0. 0. . 0. 5. 3. 0. sda8 0. 0. 0. 0. 0. 0. . 0. 7. 6. 0. sda9 0. 0. 0. 0. 0. 0. . 0. 7. 5. 0. sda 0. 0. 0. 0. 0. 0. . 0. 5. 3. 0. sda 0. . 0. 0. 0. . . 0. . 0. 0. sdb 0. 3. . . . . . 0. . 1. 7. rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s r/s:每秒完成的读I/O设备次数。即delta(rio)/s w/s:每秒完成的写I/0设备次数。即delta(wio)/s rsec/s:每秒读扇区数。即delta(rsect)/s wsec/s:每秒写扇区数。即delta(wsect)/s rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为字节 wKB/s:每秒写K字节数。是wsec/s的一半 avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio) avgqu-sz:平均I/O队列长度。即delta(aveq)/s/(因为aveq的单位为毫秒) await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio) svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio) %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。即delta(usr)/s/(因为use的单位为毫秒) 如果%util接近%,说明产生的I/O请求太多,I/O系统已经满负载,该磁盘可能存在瓶颈。 比较重要的参数 %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的 svctm:平均每次设备I/O操作的服务时间 await:平均每次设备I/O操作的等待时间 avgqu-sz:平均I/O队列长度 如果%util接近%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于%,I/O压力就比较大,读取速度有较多的wait。 同时可以结合vmstat查看查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高过%时I/O压力高) await的大小一般取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模式。如果svctm比较接近await,说明I/O几乎没有等待时间;如果 await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢。 形象的比喻 r/s+w/s类似于交款人的总数 平均队列长度(avgqu-sz)类似于单位时间里平均排队的人数 平均服务时间(avctm)类似于收银员的收款速度 平均等待时间(await)类似于平均每人的等待时间 平均I/O数据(avgrq-sz)类似于平均每人所买的东西 I/O操作率(%util)类似于收款台前有人排队的时间比例 svctm一般要小于await(因为同时等待的请求的等待时间被重复计算了),svctm的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会 间接导致svctm的增加。await的大小一般取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模式。如果svctm比较接近await,说明I/O几乎没有 等待时间;如果await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调 整内核elevator算法,优化应用,或者升级CPU 队列长度(avcqu-sz)也可作为衡量系统I/O负荷的指标,但由于avcqu-sz是按照单位时间的平均值,所以不能反映瞬间的I/O洪水。
推荐整理分享linux 查看磁盘IO状态操作指南(linux 查看磁盘io繁忙),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux 查看磁盘io占用率,linux 查看磁盘IO,linux查看磁盘io读写,linux查看磁盘io命令,linux查看磁盘io负载,linux 查看磁盘IO,linux 查看磁盘io繁忙,linux 查看磁盘io繁忙,内容如对您有帮助,希望把文章链接给更多的朋友!
Linux的bg和fg命令简单介绍 我们都知道,在Windows上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而Linux提供了fg和bg
linux下ftp的上传数据到服务器深入剖析 LinuxftpFTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。通常我们使用ftp命令,主要是上传和下载文件,ftp登陆的用户一般都是一些虚拟用
linux获取shell脚本所在绝对路径操作介绍 脚本名:a.sh位置:/tmp/whuang/study/java脚本内容:复制代码代码如下:#!/bin/shthis_dir=`pwd`dirname$0|grep"^/"/dev/nullif[$?-eq0];thenthis_dir=`dirname$0`elsedirname$0|grep"^."/dev/