zoukankan      html  css  js  c++  java
  • 服务器硬件资源_I/O

    访问应用离不开系统的磁盘数据读写,I/0读写的性能直接影响系统程序的性能,磁盘i/o是系统中最慢的部分。针对I/o场景模型,我们要考虑io的tps,平均i/o数据,平均队列长度,平均服务时间,平均等待时间,io利用率。

    参考文档:https://blog.csdn.net/qq_20332637/article/details/82146753

    iostat -x -k -d vda 2

    选项说明
    rrqm/s 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
    wrqm/s 每秒对该设备的写请求被合并次数
    r/s 每秒完成的读次数
    w/s 每秒完成的写次数
    rkB/s 每秒读数据量(kB为单位)
    wkB/s 每秒写数据量(kB为单位)
    avgrq-sz 平均每次IO操作的数据量(扇区数为单位)
    avgqu-sz 平均等待处理的IO请求队列长度
    await 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
    svctm 平均每次IO请求的处理时间(毫秒为单位)
    %util 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

    如果%util接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈,idle小于70% IO压力就较大了,一般读取速度有较多的wait。同时可以结合vmstatvirtual memory status)查看b参数(等待资源的进程数)wa参数(IO等待所占用的CPU时间的百分比,高过30%IO压力高)

    另外还可以参考svctm,由于它一般要小于 await (因为同时等待的请求的等待时间被重复计算了)svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。

    例子(I/O 系统 vs. 超市排队)

    举一个例子,我们在超市排队 checkout 时,怎么决定该去哪个交款台呢首当是看排的队人数,5个人总比20人要快吧除了数人头,我们也常常看看前面人购买的东西多少,如果前面有个采购了一星期食品的大妈,那么可以考虑换个队排了。还有就是收银员的速度了,如果碰上了连钱都点不清楚的新手,那就有的等了。另外,时机也很重要,可能 5 分钟前还人满为患的收款台,现在已是人去楼空,这时候交款可是很爽啊,当然,前提是那过去的 5 分钟里所做的事情比排队要有意义(不过我还没发现什么事情比排队还无聊的)

    I/O 系统也和超市排队有很多类似之处:

    r/s+w/s 类似于交款人的总数

    平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数

    平均服务时间(svctm)类似于收银员的收款速度

    平均等待时间(await)类似于平均每人的等待时间

    平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少

    I/O 操作率(%util)类似于收款台前有人排队的时间比例。

    标准:iwait 不能低于5ms  %util 不能超过80%

    参考:http://blog.51cto.com/lfsoul/1176501

    一般硬盘读写速度60-120MB/s

    如果硬盘是ssd,%util无法统计到。

    定位在读或者写哪个文件

    --------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    bzoj 1031: [JSOI2007]字符加密Cipher
    python re模块实现计算器
    python sys模块和序列化模块
    python time时间模块
    python 发红包的小程序
    python ranndom模块及生成验证码
    python os模块练习题
    python os模块常用命令
    快速排序,归并排序
    选择排序和插入排序
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/10256272.html
Copyright © 2011-2022 走看看