欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

测试Windows硬盘速度性能(第一部分) - 使用DiskSpd工具探索

最编程 2024-07-22 21:45:12
...

目录

一、腾讯云官网硬盘性能指标介绍

二、使用DiskSpd测试硬盘性能指标

1. DiskSpd工具介绍

2. 单路随机读写时延测试

2.1测试硬盘的随机读时延

2.2测试硬盘的随机写时延

2.3测试硬盘的随机读写时延

3. 硬盘吞吐性能测试

3.1测试硬盘的顺序读吞吐性能

3.2测试硬盘的顺序写吞吐性能

3.3测试硬盘的顺序混合读写吞吐性能

4. 硬盘IOPS性能测试

4.1测试硬盘的随机读IOPS

4.2测试硬盘的随机写IOPS

4.3测试硬盘的随机混合读写IOPS

说明:

有关Windows磁盘性能压测,笔者还是强烈推荐使用微软自己开源的压测工具DiskSpd。当然,如果要使用其他磁盘性能压测工具也是可以的,比如:IOMeter(老牌经典)FIO(更适合Linux)等

一、腾讯云官网硬盘性能指标介绍

https://cloud.tencent.com/document/product/362/2353

通常使用以下指标来衡量硬盘的性能:

IOPS:每秒读/写次数,单位为次(计数),存储设备的底层驱动类型决定了不同的 IOPS;

吞吐量:每秒的读写数据量,单位为MB/s;

时延:I/O 操作的发送时间到接收确认所经过的时间,单位为秒。

性能指标

增强型SSD云硬盘

SSD云硬盘

高性能云硬盘

单盘最大容量(GB)

32000

32000

32000

单盘最大 IOPS

100000

26000

6000

随机 IOPS 性能计算公式

基准性能:随机IOPS = min{1800 + 存储容量(GB)× 50,50000 } 额外性能:最大 IOPS = min{128 × 额外性能值,50000} 详情请参见增强型SSD云硬盘性能说明

随机 IOPS = min{1800 + 存储容量(GB)× 30,26000}

随机 IOPS = min{1800 + 存储容量(GB)× 8,6000}

单盘最大吞吐量(MB/s)

1000MB/s

260MB/s

150MB/s

吞吐性能计算公式(MB/s)

基准性能:吞吐 = min{120 + 存储容量(GB)× 0.5,350} 额外性能:吞吐 = min{1 × 额外性能值,650} 详情请参见增强型 SSD云硬盘性能说明

吞吐 = min{120 + 存储容量(GB)× 0.2,260}

吞吐 = min{100 + 存储容量(GB)× 0.15,150}

单路随机读写时延

0.3 - 1ms

0.5 - 3ms

0.8- 4ms

二、使用DiskSpd测试硬盘性能指标

1. DiskSpd工具介绍

https://github.com/microsoft/diskspd/releases 工具下载

https://github.com/Microsoft/diskspd 源码

https://github.com/Microsoft/diskspd/wiki/Command-line-and-parameters 参数

https://docs.microsoft.com/en-us/archive/blogs/josebda/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latency-for-both-local-disks-and-smb-file-shares

最常用参数介绍:

参数名

说明

-b<size> [K|M|G]

表示块大小(以字节、KiB、MiB 或 GiB为单位),默认块大小为 64 KiB。

-c<size>[K|M|G|b]

设置测试中创建使用的示例文件大小。 可以按字节、KiB、MiB、GiB 或块进行设置。

-D<milliseconds>

捕获 IOPS 统计信息(例如标准偏差),时间间隔为毫秒[default=1000,1second]。

-d<seconds>

指定测试的持续时间,不包括冷却或预热时间。 默认值为 10 秒,但对于任何繁重的工作负荷,建议至少使用 60 秒。

-L

度量延迟统计信息。

-o<count>

表示每个线程的每个目标的未完成 I/O 请求数, 也称为队列深度。

-r<align>[K|M|G|b]

随机 I/O 对齐测试,默认值为4K,不加-r为顺序I/O测试。

-Suw

禁用软件和硬件写入缓存(等效于 -Sh)。

-t<count>

表示每个目标的线程数,默认是单线程。

-w<percentage>

指定属于写入请求操作的百分比(不写-w或-w或者-w0 等效于100%读取)。 如:-w25代表有25%的写,75%的读。

注意,以下示例为测试1块500G高性能云硬盘的整体性能。

2. 单路随机读写时延测试

-b4k -o1,随机读/写测试,能反映硬盘的时延性能

2.1测试硬盘的随机读时延

.diskspd.exe -o1 -b4k –r4k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat                  

2.2测试硬盘的随机写时延

.diskspd.exe -o1 -b4k -r4k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat               

2.3测试硬盘的随机读写时延

.diskspd.exe -o1 -b4k -r4k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat                    

以上测试结果显示,平均延迟为0.717毫秒

3. 硬盘吞吐性能测试

-b128k -o32,顺序读/写测试,能反映硬盘的吞吐性能

3.1测试硬盘的顺序读吞吐性能

.diskspd.exe -o32 -b128k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat             

3.2测试硬盘的顺序写吞吐性能

 .diskspd.exe -o32 -b128k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat            

3.3测试硬盘的顺序混合读写吞吐性能

.diskspd.exe -o32 -b128k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat             

以上测试结果显示,硬盘吞吐接近最大值150MB/s

4. 硬盘IOPS性能测试

-b4k -o32,随机读/写测试,能反映硬盘的IOPS性能

4.1测试硬盘的随机读IOPS

 .diskspd.exe -o32 -b4k -r4k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat            

4.2测试硬盘的随机写IOPS

.diskspd.exe -o32 -b4k -r4k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat             

4.3测试硬盘的随机混合读写IOPS

 .diskspd.exe -o32 -b4k -r4k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat             

以上测试结果显示,IOPS也符合预期5800(1800+500G*8)

截止目前,磁盘性能测试已基本结束。

总结:

不同测试工具测试结果难免略有偏差,但从以上测试结果来看,基本符合预期。另外,DiskSpd输出结果非常丰富,本文只是截取其中一部分关键测试结果用于展示。