微信号:dellemc_tech

介绍:为戴尔易安信客户提供技术支持服务,为广大IT行业用户分享技术文章与行业信息。

Windows Perfmon与Linux IOstat存储性能工具

2017-04-09 17:13 EMC中国技术社区

     Windows的Perfmon和*nux的IOStat是操作系统自带的存储性能状态检测的工具。它们能收集绝大多数性能指标,文章给出了两个工具输出的参数详解。操作系统自带的工具也派大用场。

 

Windows Perfmon:

 

     Perfmon的全称是Windows Peformance Monitor(“Perfmon”),是Windows操作系统自带一个性能监控工具,可以用来发现操作系统是否存在I/O瓶颈。基本上每个管理员都会用它。虽然他的功能强大,涵盖得面也比较广。不过其中参数众多,可能管理员在选择特定性能指标的时候无从下手。本文是着重在磁盘性能的性能参数入手,介绍一下Perform针对PhysicalDisk的部分。

 

Perfmon中和磁盘性能有关的计数器有以下几种:

% idle time

% disk time

% disk read time

% disk write time

Disk Bytes/sec

Disk Transfers/sec

Disk Reads/sec

Disk Writes/sec

Disk Read Bytes/sec

Disk Write Bytes/sec

Avg. disk sec/read

Avg. disk sec/write

Avg. disk sec/transfer

Avg. disk bytes/transfer

Avg. Disk Queue Length

Avg. disk read queue length

Avg. disk write queue length

Current Disk Queue Length

 

 

其中比较重要的参数有:


% Disk Time

% Disk Time说明在性能数据采样区间内,磁盘处于做读写状态的百分比。一个没有I/O压力的磁盘,这个值应该小于100%。理论上应该是% Disk Read Time 和% Disk Write Time这两个值的和。但是有时候这个值会远大于100%,不太准确。作为一个趋势线,供管理员参考。


% Idle Time

% Idle Time说明在采样区间内,磁盘处于空闲状态的百分比。相对于经常大于100%的% Disk Time,这个值却是准的。当磁盘处于空闲状态时,它的值是100%。当磁盘在满负荷做操作时,它的值是0%。所以我们可以通过这个值,反推出% Disk Time的真实值。


Disk Bytes/sec

Disk Bytes/sec指明每秒钟磁盘作的读和写的数量,以Bytes为单位。它是Disk Read Bytes/sec 和 Disk Write Bytes/sec的和。管理员可以根据链接的存储系统的磁盘速度和Raid类型,看看是否达到理论上限。关于各种磁盘的参考速度,可以参考《如何计算IOPS》


Avg. disk sec/transfer

磁盘每做一次读或者写的动作所花的平均时间。如果后端存储的缓存可用且没有压力,这个值理论上会比较低。


Avg. disk sec/read

磁盘每做一次读操作所花的平均时间。后端存储Read Hit的比例会影响到这个数值


Avg. disk sec/write

磁盘每做一次写操作所花的平均时间一样。存储系统的缓存会影响到这个数值给一些参考值,这个是一个通用的界定,管理员还需要针对自己的应用要求来衡量:

好: < 10 ms、 还能接受: 10ms ~ 20ms 、比较差:20ms ~ 50m、很差: > 50ms


Avg. Disk Queue Length

在一个时间点上,磁盘队列的长度,也就是发出的磁盘操作正在等待被磁盘处理的请求数目。例如前端应用发出一条读的请求,但是目标磁盘当时正在处理其他任务(大文件读写之类的)。那么这个新的读请求就会被放在磁盘队列里。这时候磁盘队列的值就是1。理论上讲,这个值不应该长时间地大于2,如果是的话,说明磁盘的相应速度已经很慢了,前端应用程序肯定会受到影响。

 

 

Linux IOStat:

 

     IOStat *nux的系统命令用来收集操作系统存储端的输入输出相关的统计信息。简单易用,遇到存储相关问题的时候管理员最想想到的就是这个命令,它支持本地磁盘的同时也支持mount到操作系统的网络文件系统,例如NFS。

 

IOstat的基本输出包括以下几项(单位都是KB):


Tps:指该磁盘设备上每秒的传输次数,这和存储系统的IOPS有点不同,根据不同的应用,每个IO的小大是不一样的,有可能多个逻辑请求会被合并成一个文件系统的IO。


kB_read/s: 每秒从该磁盘设备上读取的数据量

kB_wrtn/s: 每秒写入的数据量

kB_read:命令运行的区间内读取数据总量

kB_wrtn:命令运行的区间内写入数据总量

 

如果使用-X参数,iostat会输出更多信息


rrqm/s:每秒这个设备相关的读取请求有多少被合并了,例如文件系统发现不同的读取请求读取的是相同Block的数据,文件会将这个请求合并;


wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:每秒所读取的扇区数

wsec/:每秒所写入的扇区数。

r/s:每秒读取请求的数目;

w/s:每秒写入请求的数目;

await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。类似于前文中介绍的Avg. Disk Queue Length,可以理解为IO的响应时间。

%util:在统计时间内所有处理IO时间,除以总共统计时间。和Windows中的% Idle Time。

 

     检查存储性能的过程不能单单靠一个指标确定问题所在,管理员要综合考虑,某一个数值高并不代表肯定有存储性能问题存在。以Windows Perfmon为例,在磁盘负荷高峰的时候,可能会看到Avg. disk sec/transfer比较高的现象。但是这个时候Disk Bytes/sec是不是也很高就比较关键了。如果Disk Bytes/sec已经接近了磁盘的最高上限,那么这个问题就更加是一个磁盘超负荷的问题。如果Disk Bytes/sec不算很高,就应该考虑的是为什么磁盘的速度不理想,可以往后端存储的方向查找问题所在。调整Raid保护级别,存储系统内部的资源分配,创建条带等都是解决方案。




其它参考文章:

【存储入门必读】存储基础知识



更多精彩内容,请点击阅读原文”进行查看!

如何每天都能收到如此精彩的文章?

①点击右上角点击查看官方账号”→点击关注

②长按并识别下图中的二维码,直接访问EMC中文支持论坛


 
戴尔易安信技术支持 更多文章 备份和归档的区别 云计算的三种模型:公有云、私有云和混合云 正确描述IO类型 【大咖讲网络】谁动了我的网络 浅析I/O处理过程与存储性能的关系
猜您喜欢 猴年献礼,京东数据产品大揭秘! 唯品会第一届安全沙龙收获 大型网站系统架构的演化 情人节最适合陪『小情人』孩子做什么? 全栈工程师眼中的HTTP