• 哈尔滨市“拔钉子”严查露天烧烤 21家冒烟摊位将被依法处罚 2018-05-24
  • 新濠天地娱乐城官网 2018-05-24
  • “澳门368足球博彩公司”足球比分及时直播李国英主持召开省深化医药卫生体制改革领导小组会议 2018-05-23
  • 马来大选92岁前总理改写政治版图 60年来政党首轮替 2018-05-23
  • 科技创新技能挑战赛聚焦冬奥主题 2018-05-23
  • 泰国试管婴儿bnh医院技术怎么样,是最好的吗?—海口论坛 2018-05-23
  • 置业指南:买高层要注意这些问题 2018-05-22
  • い羛琩矪堵旧笴眏い瓣笴潦ㄆン 2018-05-22
  • 有力有序有效防范化解煤电产能过剩风险 2018-05-22
  • 美好生活的价值追求和实现路径-社会关注-理论频道-中工网 2018-05-21
  • 保罗亲手为自己圆梦 火箭勇士双双会师西部决赛 2018-05-21
  • Floating production, storage and offloading vessel delivered in Qingdao 2018-05-20
  • 汽車定位跟蹤官員意圖敲詐 追蹤器該怎麼管 2018-05-20
  • 工作队精准发力助力贫困村“摘帽” 2018-05-20
  • 中消协发布榨汁机比较试验结果 2018-05-20
  • 通过iostat命令监控磁盘IO性能

    栏目: linux 发布于: 2013-11-16 21:25:18

    网站的很多性能问题最终都会归结到IO头上,所以说理解iostat命令是非常有必要的。

    如果你的操作系统里没有iostat命令的话,除了从源代码安装,还可以使用下面方式:

    Centos/Fedora的安装方式是:yum install sysstat
    
    Debian/Ubuntu的安装方式是:aptitude install sysstat
    下面是自己linode VPS的IO信息:

    [root@li411-195 ~]# iostat -x 1
    Linux 3.9.3-x86 	11/16/2013 	_i686_	(8 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.48    0.00    0.12    0.02    0.48   98.91
    
    Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
    xvda              0.03    12.88    0.33    2.55    19.62   123.45    49.58     0.08   26.06   0.48   0.14
    xvdb              0.00     0.00    0.00    0.00     0.01     0.02    17.14     0.00   32.23   3.00   0.00
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.00    0.00    0.12   99.88
    
    Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
    xvda              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    xvdb              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
    命令:iostat -x l 表示每隔一秒显示一次IO信息。

    注:开头显示的是自系统启动开始的平均值,后面显示的是每段时间间隔里的平均值。

    下面介绍一下IO信息中个参数的含义:

    rrqm/s:  	每秒进行 merge 的读操作数目.即 delta(rmerge)/s
    wrqm/s:  每秒进行 merge 的写操作数目.即 delta(wmerge)/s
    r/s:          	每秒完成的读 I/O 设备次数.即 delta(rio)/s
    w/s:        	每秒完成的写 I/O 设备次数.即 delta(wio)/s
    rsec/s:   	每秒读扇区数.即 delta(rsect)/s
    wsec/s: 	每秒写扇区数.即 delta(wsect)/s
    rkB/s:     	每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节.(需要计算)
    wkB/s:    每秒写K字节数.是 wsect/s 的一半.(需要计算)
    avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区).delta(rsect+wsect)/delta(rio+wio)
    avgqu-sz: 平均I/O队列长度.即 delta(aveq)/s/1000 (因为aveq的单位为毫秒).
    await:   	平均每次设备I/O操作的等待时间 (毫秒).即 delta(ruse+wuse)/delta(rio+wio)
    svctm:  	平均每次设备I/O操作的服务时间 (毫秒).即 delta(use)/delta(rio+wio)
    %util:     	一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的.即 delta(use)/s/1000 (因为use的单位为毫秒)
    关于这些参数,相对重要的是后面几个,具体来说是:util,svctm,await,avgqu-sz:

    util是设备的利用率。如果它接近100%,通常说明设备能力趋于饱和(并不绝对)。有时候会出现大于100%的情况,这是因为读取数据的时候是非原子操作。

    svctm是平均每次请求的服务时间。从源代码里可以看出:(r/s+w/s)*(svctm/1000)=util。举例子:如果util达到100%,那么此时svctm=1000/(r/s+w/s),假设IOPS是1000,那么svctm大概在1毫秒左右,如果长时间大于这个数值,说明系统出了问题。

    await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。

    avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好。

    参考资料:http://www.rocksun.cn/2009/02/03/iostat.html

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:通过iostat命令监控磁盘IO性能
    IT技术书籍推荐:
    PHP编程(第3版)
    PHP编程(第3版)
    凯文·塔特罗 (Kevin Tatroe) (作者), 彼得·麦金太尔 (Peter MacIntyre) (作者), 拉斯马斯·勒多夫 (Rasmus Lerdorf) (作者), 赵戈戈 (译者), 易国磐 (译者), 张鹏飞 (译者)
    这是一本可以让读者深入了解PHP 技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。本书涵盖了PHP 所有基本的要点,不管你是一个想从头开始学习PHP的人,还是对PHP 已经有了基础想继续深入的人,这本书都很合适。