• 党务问答:党组与党委有何区别? 2018-02-21
  • 杨浦区贯彻实施长护险 春节加班满足老人护理需求 2018-02-21
  •  “不打烊”不等于“全配送” 快递如何保障春节网购 2018-02-21
  • 冬奥观察:奥林匹克在“云”间 2018-02-20
  •  “不打烊”不等于“全配送” 快递如何保障春节网购 2018-02-20
  • 开创生态文明新时代 绘出美丽中国新图景 2018-02-20
  • 人民网驻阿尔及利亚记者报道集 2018-02-19
  • 党务问答:党组与党委有何区别? 2018-02-19
  • MINI车联网服务3月起升级至4G网络 增加新功能 2018-02-18
  • 以色列警方:已有足够的证据可以用于起诉以总理 2018-02-18
  • 冬奥会短节目第四 金博洋:伤病令我更强大 2018-02-18
  • 天津市北辰区委书记冯卫华:强化政治担当 把主体责任落实落细 2018-02-17
  • 正月初一客流继续回落 全国铁路预计发送旅客389万人次 2018-02-17
  • 送别余光中:诗人虽远行,乡愁永流传 2018-02-17
  • 集团原董事长违纪被查 人员伤亡事故频发 湖北宜化:去年亏损额超过公司市值 2018-02-17
  • 通过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 已经有了基础想继续深入的人,这本书都很合适。