UDN-企业互联网技术人气社区

板块导航

浏览  : 2070
回复  : 0

[运维] Windows Perfmon与Linux IOstat存储性能工具

[复制链接]
呵呵燕的头像 楼主
发表于 2016-11-11 22:13:57 | 显示全部楼层 |阅读模式
  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中文技术社区 来源:开发者头条

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部