Skip to main content

在 Windows Server 2022 下测试硬盘 IOPS

Windows Server 2022 下测试硬盘 IOPS,最专业、最常用的是用微软官方工具 DiskSpd。下面给你一份直接可用的命令集合,适合真实服务器场景。


一、推荐工具:DiskSpd(微软官方)

下载地址(官方):

  • DiskSpd

(你可以从微软 GitHub 搜索 “DiskSpd” 下载)

解压后假设路径为:

C:\diskspd\diskspd.exe

二、新建一个测试文件(非常重要)

先准备一个测试文件,比如 10GB:

fsutil file createnew D:\iops_test.dat 10737418240

三、随机读 IOPS 测试命令(最常用)

1. 4K 随机读(典型数据库负载)

C:\diskspd\diskspd.exe ^
-b4K -r -o32 -t4 -d30 -Sh ^
-L D:\iops_test.dat

参数说明:

参数 说明
-b4K 块大小 4KB
-r 随机 IO
-o32 队列深度 32
-t4 4 线程
-d30 测试 30 秒
-Sh 禁用系统缓存
-L 显示延迟统计

2. 4K 随机写 IOPS

C:\diskspd\diskspd.exe ^
-b4K -r -w100 -o32 -t4 -d30 -Sh ^
-L D:\iops_test.dat

四、顺序读写吞吐测试

1. 顺序读(大文件)

C:\diskspd\diskspd.exe ^
-b1M -s -o4 -t2 -d30 -Sh ^
-L D:\iops_test.dat

2. 顺序写

C:\diskspd\diskspd.exe ^
-b1M -s -w100 -o4 -t2 -d30 -Sh ^
-L D:\iops_test.dat

五、如何看 IOPS 结果

主要看结果中的这一行:

total IO

示例结果:

total IO
  IO/s:     85234
  MB/s:     333.1
  AvgLat:   0.45ms

其中:

  • IO/s → 就是 IOPS

  • AvgLat → 平均延迟


六、简单对照参考值

存储类型 大概 IOPS
SATA HDD 100–200
SATA SSD 10,000–50,000
NVMe SSD 100,000–500,000+
云盘(普通) 1,000–10,000

如果你是在 Hyper-V 虚拟机 里测试,我还能给你一套专门针对 VM 的压测参数。

 

这个报错原因非常明确,并且你这个环境很典型 👇


直接原因

核心报错是这一句:

Error opening file: E:\iops_test.dat [2]

错误码 [2] = 系统找不到指定的文件

也就是说:
👉 DiskSpd 找不到 E:\iops_test.dat 这个测试文件,所以直接中断。


为什么会这样

DiskSpd 不会自动创建测试文件,它只会对已存在的文件做压力读写测试。

你现在只是执行了测试命令,但并没有在 E: 盘创建这个文件。


正确的做法(一步解决)

先在 E: 盘创建一个测试文件:

在 PowerShell 里运行:

fsutil file createnew E:\iops_test.dat 10737418240

这会创建一个 10GB 文件

确认文件存在:

dir E:\iops_test.dat

再重新执行你的测试命令

.\diskspd.exe -b4K -r -o32 -t4 -d30 -Sh -L E:\iops_test.dat

这次就会正常跑出 IOPS 结果。


额外提醒你几个容易踩的坑(结合你日志)

你环境是:

  • Windows Server 2022

  • 双路 CPU(2 sockets)

  • 48 线程

这没问题 👍

但注意:

1. 不要在系统盘 C: 上压测

会严重影响系统响应。

2. 确保 E: 是独立数据盘

不要是 U 盘、光驱、映射盘之类。


总结一句话

你的错误不是 DiskSpd 的问题,而是:

测试文件不存在
✅ 先用 fsutil 创建文件即可


如果这个 E: 盘是在 Hyper-V 虚拟机里,我还能给你一套专门针对虚拟盘的最优参数。