目录
一、腾讯云官网硬盘性能指标介绍
二、使用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测试硬盘的随机读时延
代码语言:javascript复制.diskspd.exe -o1 -b4k –r4k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat
2.2测试硬盘的随机写时延
代码语言:javascript复制.diskspd.exe -o1 -b4k -r4k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat
2.3测试硬盘的随机读写时延
代码语言:javascript复制.diskspd.exe -o1 -b4k -r4k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat
以上测试结果显示,平均延迟为0.717毫秒
3. 硬盘吞吐性能测试
-b128k -o32,顺序读/写测试,能反映硬盘的吞吐性能
3.1测试硬盘的顺序读吞吐性能
代码语言:javascript复制.diskspd.exe -o32 -b128k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat
3.2测试硬盘的顺序写吞吐性能
代码语言:javascript复制 .diskspd.exe -o32 -b128k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat
3.3测试硬盘的顺序混合读写吞吐性能
代码语言:javascript复制.diskspd.exe -o32 -b128k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat
以上测试结果显示,硬盘吞吐接近最大值150MB/s
4. 硬盘IOPS性能测试
-b4k -o32,随机读/写测试,能反映硬盘的IOPS性能
4.1测试硬盘的随机读IOPS
代码语言:javascript复制 .diskspd.exe -o32 -b4k -r4k -w0 -d120 -Sh -D -L -c10G D:targetfileIO.dat
4.2测试硬盘的随机写IOPS
代码语言:javascript复制.diskspd.exe -o32 -b4k -r4k -w100 -d120 -Sh -D -L -c10G D:targetfileIO.dat
4.3测试硬盘的随机混合读写IOPS
代码语言:javascript复制 .diskspd.exe -o32 -b4k -r4k -w50 -d120 -Sh -D -L -c10G D:targetfileIO.dat
以上测试结果显示,IOPS也符合预期5800(1800 500G*8)
截止目前,磁盘性能测试已基本结束。
总结:
不同测试工具测试结果难免略有偏差,但从以上测试结果来看,基本符合预期。另外,DiskSpd输出结果非常丰富,本文只是截取其中一部分关键测试结果用于展示。