我正在尝试找出为什么我的应用程序在某台机器上运行非常慢(在其他地方运行良好)。我认为我已经将性能问题追溯到硬盘读写,我认为这只是磁盘速度太慢。
我可以使用什么工具以非破坏性的方式测量 Windows 2003 下的硬盘读写性能(驱动器上的分区必须保持完整)?
答案1
Windows 中有一个内置的磁盘性能检查器,称为winsat
:
winsat disk -drive g
(winsat
以管理员权限运行;在此示例中g
为驱动器)G:
文档:https://learn.microsoft.com/en-us/windows/win32/winsat/using-winsat
例如:
C:\WINDOWS\system32>winsat disk -drive g
Windows System Assessment Tool
> Running: Feature Enumeration ''
> Run Time 00:00:00.00
> Running: Storage Assessment '-drive g -ran -read'
> Run Time 00:00:04.17
> Running: Storage Assessment '-drive g -seq -read'
> Run Time 00:00:08.64
> Running: Storage Assessment '-drive g -seq -write'
> Run Time 00:00:17.47
> Running: Storage Assessment '-drive g -flush -seq'
> Run Time 00:00:03.53
> Running: Storage Assessment '-drive g -flush -ran'
> Run Time 00:00:04.16
> Disk Random 16.0 Read 21.05 MB/s 6.0
> Disk Sequential 64.0 Read 38.29 MB/s 4.9
> Disk Sequential 64.0 Write 39.67 MB/s 4.9
> Average Read Time with Sequential Writes 1.324 ms 7.4
> Latency: 95th Percentile 2.585 ms 7.3
> Latency: Maximum 26.977 ms 7.9
> Average Read Time with Random Writes 1.299 ms 8.1
> Total Run Time 00:00:39.41
默认情况下,它不会测试随机写入速度,因此您可以使用以下命令检查随机 16.0 写入:winsat disk -write -ran -drive c
例如。
答案2
HD Tach 已停产。HD Tune 似乎相当:http://www.hdtune.com/
答案3
对于那些可能正在寻找能够测试 SQL 类型场景的人来说,有磁盘驱动器它已取代了 SQLIO。
答案4
您可以使用 Perfmon 收集基于物理磁盘的计数器,例如:
物理磁盘(实例)\每个物理磁盘的磁盘传输/秒计数器
物理磁盘(实例)\% 空闲时间
平均磁盘队列长度
或下载朋友(非常有用的监控工具)并使用针对操作系统的内置模板。