Windows磁盘性能分析原理和方法

简介: 这次我主要给大家介绍一下Windows磁盘性能分析的原理和主要参考指标的一些计算方法。

这次我主要给大家介绍一下Windows磁盘性能分析的原理和主要参考指标的一些计算方法。 希望对大家有一些借鉴意义。

Windows磁盘性能主要依赖于其内核驱动partmgr.sys(partition manager)。该驱动在整个存储设备堆栈中处于中间位置,在Disk Class Driver (disk.sys)和文件系统驱动中间。如下图:

image

这意味着每个发向磁盘的IO (在Windows系统中又IRP代表),都会经过partmgr.sys。那么该驱动也就有机会记录很多关于磁盘的统计信息。

举个例子,当某个IO发向磁盘之后,经过partmgr.sys的时候驱动就会记录该IO的一些信息,比如经过的时间。而当IO完成的时候,最后会调用partmgr.sys的completion routine,该驱动也就有机会记录IO完成的时间,两者相减就可以得到单个IO的处理时间,对大量IO来说就可以得出统计意义上的平均数据 - Disk sec/Transfer。

再举个例子,对于单个IO,当经过partmgr.sys的时候,驱动就会对其内部计数器加1,当IO完成的时间内部计数器就会减1。那么在平时我们就可以从该计数器得知一共有多少IO尚未完成,平均以后就得到了性能监视器中的平均队列长度 - Avg. Disk Queue Length。

那么我们再来谈一谈所有性能监视器(perfmon)中那些关于磁盘的计数器对象,究竟那些指标代表了磁盘性能:

Disk Bytes/sec

该计数器代表了磁盘的吞吐量,也就是每秒钟有多少字节读写磁盘。他其实取决于两个方面:

从应用或者系统层面产生了多少IO压力。
磁盘性能。
也就是说如果应用或者系统层面没有对磁盘产生压力,它的数值也不会上升。即使它的数值很高,也很有可能是因为应用产生了大量的IO,而不能因此判断磁盘的性能存在问题。

% Idle Time

该技术器代表了磁盘的空闲程度,我们之前提到内部计数器来跟踪磁盘有多少未完成的IO,当该数值为非0时,性能监视器就认为磁盘的繁忙的。为0时,自然就认为磁盘是空闲的。但是即使磁盘一直有未能完成的IO,磁盘依然有可能及时地完成每一个IO,这样也就谈不上磁盘的性能问题。

Avg. Disk Queue Length

这个数值也就是从我们之前提到的内部计数器得来的,试想这样一种情况,磁盘的IO压力很大,如果我们的内部计数器数值很高,也就代表没有完成的IO很多,但是磁盘能够快速地完成每一个IO,这种情况我们能否认为磁盘性能是有问题的?答案是不能,如果磁盘能够快速地完成每一个IO,自然磁盘性能是正常的。

Disk sec/Transfer

根据我们之前的所有分析,这个数值是真正代表磁盘性能的。说如果该数值很高(一般超过50ms),那么应用会很明显地感受每一个交给磁盘的IO回复得很慢,也就会导致应用产生性能问题。

目录
相关文章
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
2437 4
|
2月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
375 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
4月前
|
Ubuntu Unix Linux
在Windows上轻松安装和使用Ubuntu的方法详解
继续点击“Continue”按钮以继续安装流程,随后选择清理磁盘并安装操作系统的选项。 接下来,在安装过程中,你需要选择时区。为了与你的地理位置相匹配,请选择中国上海作为你的时区设置。 在安装过程中,你还需要设置计算机的名称以及账号密码。请务必牢记这些信息,因为它们将作为你登录系统的凭证。
|
2月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
232 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
5月前
|
Linux Windows
Windows 10/11从官网下载ISO的方法
本文介绍了两种从微软官网下载Windows 10/11 ISO镜像的方法。一是通过修改浏览器User Agent为Linux系统,使官网提供ISO下载链接;二是使用UUPDUMP工具,从官网下载并转换为ISO格式,支持最新开发版,操作简便。
|
3月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
646 0
|
3月前
|
数据管理 Linux iOS开发
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
146 0
|
5月前
|
自然语言处理 监控 安全
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
164 0
Magnet Axiom 9.0 Windows x64 Multilingual - 数字取证与分析
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
140 0
|
10月前
|
存储 安全 虚拟化
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)
539 0
Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2025 年 2 月更新)