博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习笔记】Linux下磁盘IO性能评估
阅读量:2068 次
发布时间:2019-04-29

本文共 1450 字,大约阅读时间需要 4 分钟。

Linux下磁盘IO性能评估

1、  sar –d命令

【说明】:

l  DEV表示磁盘设备名称

l  tps:表示每秒到物理磁盘的传送数,也就是每秒的I/O流量。一个传送就是一个IO请求,多个逻辑请求可以被合并为一个物理I/O请求。

l  rd_sec/s:表示每秒从设备读取的扇区数(1扇区=512字节)

l  wr_sec/s:表示每秒写入扇区的数目。

l  Avgrq-sz:表示平均每次设备I/O操作的数据大小(以扇区为单位)

l  Avgqu-sz:表示平均I/O队列长度

l  Await:表示平均每次设备I/O操作的等待时间(以毫秒为单位)

l  Svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)

l  %util:表示一秒钟有百分之几的时间用于I/O操作

 

Linux中I/O请求系统与现实生活中超市购物排队系统有很多类似的地方,通过对超市购物排队系统的理解,可以很快掌握Linux中I/O运行机制。比如:

l  Avgrq-sz:类似于超市排队中每人所买东西的多少

l  Avgqu-sz:类似于超市排队中单位时间内平均排队的人数

l  Await:类似于超市排队中每人的等待时间

l  Svctm:类似于超市排队中收银员的收款速度

l  %util:类似超市收银员台前有人排队的时间比例

评价标准:

l  一般情况下svctm应该是小于await值的,而svctm的大小和磁盘性能有关,CPU、内存的负荷也对svctm值造成影响,过多的请求也会间接导致svctm值的增加。

l  Await的值一般取决于svctm的值和I/O队列长度以及I/O请求模式。如果svctm的值与await的值很接近,就表示几乎没有I/O等待,磁盘性能很好;如果await的值远高于svctm的值,则表示I/O队列等待太长,系统运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

l  %util的值也是衡量磁盘I/O的一个重要指标,如果%util接近100%,就表示磁盘产生的I/O请求太多,I/O系统已经满负荷地在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。

2、  iostat –d命令

l  Blk_read/s:表示每秒读取的数据块数

l  Blk_wrtn/s:表示每秒写入的数据块数

l  Blk_read:表示读取的所有块数

l  Blk_wrtn:表示写入的所有块数

如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或优化程序;如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。

对于以上两个值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则是可以遵循的,即长期的、超大的数据读写肯定是不正常的,这种情况肯定会影响系统的性能。

另外iostat  -x还提供对每个磁盘的单独统计,如果不指定磁盘,则默认是对所有磁盘进行统计,如下所示:

 

 

l  rrqm/s:表示每秒进行merged的读操作数目

l  wrqm/s:表示每秒进行merged的写操作数目

l  r/s:表示每秒完成读I/O设备的次数

l  w/s:表示每秒完成写I/O设备的次数

l  rsec/s:表示每秒读取的扇区数

l  wsec/s:表示每秒写入的扇区数

3、  vmstat –d也可以统计磁盘的读写性能

【学习笔记】摘自《Linux服务器架设、性能调优、集群管理教程—实训与项目案例》

转载地址:http://dtdmf.baihongyu.com/

你可能感兴趣的文章
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【Linux】vim的简单配置
查看>>
ThreadLocal 那点事儿(续集)
查看>>
笔记本怎么设置WIfi热点
查看>>
如何实现字符串的反转及替换?
查看>>
Java面试题全集(上)
查看>>
Java面试题全集(中)
查看>>
值传递和引用传递
查看>>
什么情况下用+运算符进行字符串连接比调用StringBuilder对象的append方法连接字符串性能更好?
查看>>
怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序?
查看>>