前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows磁盘性能压测(2)-Fio

Windows磁盘性能压测(2)-Fio

原创
作者头像
雷龙
修改2021-06-17 16:13:53
8.7K5
修改2021-06-17 16:13:53
举报
文章被收录于专栏:技术交流专栏技术交流专栏

目录

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

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

1. 测试工具相关

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

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

1.测试工具相关

https://fio.readthedocs.io/en/latest/fio_doc.html

https://fio.readthedocs.io/en/latest/fio_doc.html#command-line-options

https://github.com/axboe/fio

参数名

说明

bs

每次请求的块大小。

ioengine

I/O 引擎。推荐Linux 用libaio,Windows用windowsaio。

iodepth

请求的I/O队列深度。

direct

指定 direct 模式。默认为 True(1)。 True(1)表示指定 O_DIRECT 标识符,忽略 I/O 缓存,数据直写。 False(0)表示不指定 O_DIRECT 标识符。

rw

读写模式。取值包括顺序读(read)、顺序写(write)、随机读(randread)、随机写(randwrite)、混合随机读写(randrw)和混合顺序读写(rw,readwrite)

time_based

指定采用时间模式。无需设置该参数值,只要 FIO 基于时间来运行。

runtime

指定测试时长,即 FIO 运行时长。

refill_buffers

FIO 将在每次提交时重新填充 I/O 缓冲区。默认设置是仅在初始时填充并重用该数据。

norandommap

在进行随机 I/O 时,FIO 将覆盖文件的每个块。若给出此参数,则将选择新的偏移量而不查看 I/O 历史记录。

randrepeat

随机序列是否可重复,默认为 True(1)。 True(1)表示随机序列可重复,False(0)表示随机序列不可重复。

group_reporting

多个 job 并发时,打印整个 group 的统计值。

name

job 的名称。

size

I/O 测试的寻址空间。

numjobs

同时测试的线程数量(这个值乘以上面的iodepth就是对磁盘产生的实际队列深度)

rwmixread

--rwmixread=0 这里读写比率是0,表示100%写,下面100%随机读测试中,这个值设置为100

thread

由于使用了多线程,这个参数必须加上

filename

测试对象,即待测试的磁盘设备名称。

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

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

注:通常Windows Server默认安装路径在C:\Program Files\fio下面

bs=4k iodepth=1,随机读/写测试,能反映硬盘的时延性能

2.1测试硬盘的随机读时延

代码语言:javascript
复制
  .\fio.exe -bs=4k -ioengine=windowsaio -iodepth=1 -numjobs=1 -direct=1 -rw=randread -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat -size=10G -filename="D\:\targetfile"

2.2测试硬盘的随机写时延

代码语言:javascript
复制
.\fio.exe -bs=4k -ioengine=windowsaio -iodepth=1 -numjobs=1 -direct=1 -rw=randwrite -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-lat -size=10G -filename="D\:\targetfile"  

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

代码语言:javascript
复制
  .\fio.exe -bs=4k -ioengine=windowsaio -iodepth=1 -numjobs=1 -direct=1 -rw=randrw -rwmixread=50 -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randrw-lat -size=10G -filename="D\:\targetfile"

3.硬盘吞吐性能测试

bs=128k iodepth=32,顺序读/写测试,能反映硬盘的吞吐性能

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

代码语言:javascript
复制
  .\fio.exe -bs=128k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=read -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-read-throughput -size=10G -filename="D\:\targetfile"

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

代码语言:javascript
复制
 .\fio.exe -bs=128k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=write -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-write-throughput -size=10G -filename="D\:\targetfile" 

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

代码语言:javascript
复制
  .\fio.exe -bs=128k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=readwrite -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-readwrite-throughput -size=10G -filename="D\:\targetfile"

4.测试硬盘的IOPS性能

bs=4k iodepth=32,随机读/写测试,能反映硬盘的IOPS性能

4.1测试硬盘的随机读IOPS

代码语言:javascript
复制
 .\fio.exe -bs=4k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=randread -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops -size=10G -filename="D\:\targetfile" 

4.2测试硬盘的随机写IOPS

代码语言:javascript
复制
.\fio.exe -bs=4k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=randwrite -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-iops -size=10G -filename="D\:\targetfile"  

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

代码语言:javascript
复制
.\fio.exe -bs=4k -ioengine=windowsaio -iodepth=32 -numjobs=1 -direct=1 -rw=randrw -thread -time_based -runtime=120 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randrw-iops -size=10G -filename="D\:\targetfile" 

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

总结:

不同测试工具测试结果难免略有偏差,但从以上测试结果来看,符合预期。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、腾讯云官网硬盘性能指标
  • 二、使用fio测试硬盘性能指标
    • 1.测试工具相关
      • 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
        相关产品与服务
        云硬盘
        云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档