如何在Windows中监视IO性能

所属分类: 操作系统 / 其它相关 阅读数: 99
收藏 0 赞 0 分享

本来准备写一篇windows中监视IO性能的,后来发现好像可写的内容不多,windows在细节这方面做的不是那么的好,不过那些基本信息还是有的。

在Windows中监视性能基本都用性能监视器了,与IO性能相关的有两个大类,一个是”LogicalDisk”,另外一个是”PhysicalDisk”,”LogicalDisk”更多的是用来监视文件相关的IO性能,而”PhysicalDisk”则是用来监视LUN或者是磁盘卷,下面就列举下与前面所列举的IO性能相关的计数器,具体的自己研究了:

单次IO大小

  • Avg. Disk Bytes/Read
  • Avg. Disk Bytes/Write

IO响应时间

  • Avg. Disk sec/Read
  • Avg. Disk sec/Write

IOPS

  • Disk Reads/sec
  • Disk Writes/sec
  • Disk Transfers/sec

IO吞吐率

  • Disk Bytes/sec
  • Disk Read Bytes/sec
  • Disk Write Bytes/sec

理解iostat的各项输出

在Linux中,我们执行一个iostat -x命令,我们能看到如下的输出

  $iostat -x
  Linux 2.4.21-50a6smp (linux) 11/03/2009
  avg-cpu: %user %nice %sys %iowait %idle
  0.42 0.00 0.26 0.47 98.86
  Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
  hdc 0.01 0.00 0.00 0.00 0.07 0.00 0.03 0.00 24.48 0.00 4.90 4.57 0.00
  hda 0.89 8.54 0.74 4.49 12.60 104.22 6.30 52.11 22.32 0.03 5.41 1.01 0.53

我们先列举一下各个性能指标的简单说明。

  •   rrqm/s:每秒进行merge的读操作数目。
  •   wrqm/s:每秒进行merge的写操作数目。
  •   r/s:每秒完成的读I/O设备次数。
  •   w/s:每秒完成的写I/O设备次数。
  •   rsec/s:每秒读扇区数。
  •   wsec/s:每秒写扇区数。
  •   rkB/s:每秒读K字节数。
  •   wkB/s:每秒写K字节数。
  •   avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。
  •   avgqu-sz:平均I/O队列长度。
  •   await:平均每次设备I/O操作的等待时间(毫秒)。
  •   svctm:平均每次设备I/O操作的服务时间(毫秒)。
  •   %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。

要理解这些性能指标我们先看下图

IO的执行过程的各个参数

上图的左边是iostat显示的各个性能指标,每个性能指标都会显示在一条虚线之上,这表明这个性能指标是从虚线之上的那个读写阶段开始计量的,比如说图中的w/s从Linux IO scheduler开始穿过硬盘控制器(CCIS/3ware),这就表明w/s统计的是每秒钟从Linux IO scheduler通过硬盘控制器的写IO的数量。

结合上图对读IO操作的过程做一个说明,在从OS Buffer Cache传入到OS Kernel(Linux IO scheduler)的读IO操作的个数实际上是rrqm/s+r/s,直到读IO请求到达OS Kernel层之后,有每秒钟有rrqm/s个读IO操作被合并,最终转送给磁盘控制器的每秒钟读IO的个数为r/w;在进入到操作系统的设备层(/dev/sda)之后,计数器开始对IO操作进行计时,最终的计算结果表现是await,这个值就是我们要的IO响应时间了;svctm是在IO操作进入到磁盘控制器之后直到磁盘控制器返回结果所花费的时间,这是一个实际IO操作所花的时间,当await与svctm相差很大的时候,我们就要注意磁盘的IO性能了;而avgrq-sz是从OS Kernel往下传递请求时单个IO的大小,avgqu-sz则是在OS Kernel中IO请求队列的平均大小。

现在我们可以将iostat输出结果和我们前面讨论的指标挂钩了。

  •   平均单次IO大小(IO Chunk Size) <=> avgrq-sz
  •   平均IO响应时间(IO Response Time) <=> await
  •   IOPS(IO per Second) <=> r/s + w/s
  •   吞吐率(Throughtput) <=> rkB/s + wkB/s

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

详解uboot各目录下的文件作用

这篇文章主要介绍了详解uboot各目录下的文件作用的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

man -f/-k [keyword]在fedora 29 中报错nothing appropriate

这篇文章主要介绍了man -f/-k [keyword]在fedora 29 中报错nothing appropriate ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows下使用Xshell时出现丢失msvcr110.dll等dll问题

这篇文章主要介绍了windows下使用Xshell时出现丢失msvcr110.dll等dll问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows下使用Git上传代码 的图文操作方法

这篇文章主要介绍了windows下使用Git上传代码 的图文操作方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows操作系统更改 远程桌面端口号的方法

这篇文章主要介绍了windows操作系统更改远程桌面 端口号的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows 系统防火墙 添加端口号方法

这篇文章主要介绍了windows 系统防火墙 添加端口号方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows通过秘钥使用ssh和scp的方法

这篇文章主要介绍了windows通过秘钥使用ssh和scp的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows环境下修改pip镜像源的方法详解

这篇文章主要介绍了windows环境下修改pip镜像源的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

win10设定计划任务时提示所指定的账户名称无效问题解析

这篇文章主要介绍了win10设定计划任务时提示所指定的账户名称无效问题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

windows10打开switchHost 提示无修改权限问题解决

这篇文章主要介绍了windows10打开switchHost,提示无修改权限问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多