[转帖]Windows磁盘性能压测(2)-Fio
http://www.manongjc.com/detail/59-qftscgqzitmxpaw.html
目录
一、腾讯云官网硬盘性能指标
二、使用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
|
参数名 |
说明 |
|---|---|
|
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 Filesfio下面
bs=4k iodepth=1,随机读/写测试,能反映硬盘的时延性能
2.1测试硬盘的随机读时延
.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测试硬盘的随机写时延
.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测试硬盘的随机混合读写时延
.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测试硬盘的顺序读吞吐性能
.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测试硬盘的顺序写吞吐性能
.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测试硬盘的顺序混合读写吞吐性能
.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
.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
.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
.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"
截止目前,磁盘性能测试已基本结束。
总结:
不同测试工具测试结果难免略有偏差,但从以上测试结果来看,符合预期。
[转帖]Windows磁盘性能压测(2)-Fio的更多相关文章
- 性能压测诡异的Requests/second 响应刺尖问题
最近一段时间都在忙着转java项目最后的冲刺,前期的coding翻代码.debug.fixbug都逐渐收尾,进入上线前的性能压测. 虽然不是大促前的性能压测要求,但是为了安全起见,需要摸个底心里有个数 ...
- windows下Jmeter压测端口占用问题(亲测有效)
windows下Jmeter压测端口占用问题 1 报错信息描述 压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错. JAVA.NET.BINDEXCEPT ...
- MySQL 性能压测工具-sysbench,从入门到自定义测试项
sysbench是一个开源的.基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的.可自定义脚本的多线程基准测试工具,也是目前用得最多的 ...
- jmeter系列-如何实现像loadrunner一样,多个并发用户先通过登录初始化,然后做并发的接口性能压测
自动转开发后,就很少关注性能测试方面的东西,最近在帮朋友做一个性能压测,由于朋友那边的公司比较小,环境比较简单,而且是对http服务进行的压测,所以最终 选用了jmeter来实现这个压测. 如下就是我 ...
- 性能压测,SQL查询异常
早上测试对性能压测,发现取sequence服务大量超时报错,查询线上的监控SQL: 大量这个查询,我在DeviceID和Isdelete上建有复合索引,应该很快,而且我测试了一下,取值,执行效率很高, ...
- jmeter性能压测瓶颈排查-网络带宽
问题: 有一台机器做性能压测的时候,无论开多少个线程,QPS一直压不上去,而服务器和数据库的性能指标(主要是CPU和内存)一直维持在很低的水平. 希望帮忙排查一下原因. 过去看了下进行压测的接口代码, ...
- 性能压测中的SLA,你知道吗?
本文是<Performance Test Together>(简称PTT)系列专题分享的第6期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全 ...
- 并发模式与 RPS 模式之争,性能压测领域的星球大战
本文是<如何做好性能压测>系列专题分享的第四期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论 ...
- [SCF+wetest+jmeter]简单云性能压测工具使用方案
前言 压测太难?局域网压力无法判断服务器网络指标?无法产生非常大的并发量?云性能太贵? 也许我们可以把各种简单的工具拼起来进行压力测试! 准备 https://cloud.tencent.com/pr ...
- 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选
一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...
随机推荐
- 记录:idea git push失败问题
问题描述: 重复弹出密码登录框,但是push失败 解决,用ssh的方式登录 1.生成ssh 配置用户名 git config --global user.name "tmqq2333&quo ...
- EDS从小白到专家丨打造你的专属“数据物流”系统
"数据快递"如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属的"数据物流"系统...... 本文分享自华为云社区<[EDS从小白到专家]第2期-E ...
- 云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 云办公时代已然到 ...
- 手写签名-微信小程序
index.wxml <canvas type="2d" id="canvas" bindtouchmove="move" bindt ...
- .Net Core NLog 配置
using NLog; private static Logger logger = LogManager.GetCurrentClassLogger(); //初始化日志类 NLog.config ...
- Jmeter软件测试
1.1. 性能测试是什么 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求 性能指标关注点:时间性能.空间性能 性能测试与页面无关 性能测试定义:指通过自动化的测试工 ...
- 数字U家,即刻出发!2022联合利华黑客马拉松启动!
2022联合利华黑客马拉松火热报名倒计时! 欢迎各领域的个人及组织团队参与 人工智能.数据挖掘.市场规模预测.原材料与包装风险控制.AR/VR.低碳.消费者偏好研究等超多创新赛题,任选其一. 作为快消 ...
- mock使用
- Vue tinymce富文本编辑器整合
最近再弄一个后台管理系统,挑选了不少的编辑器,最终选择了tinymce,UI精美,功能模块多,可按需加载配置 vue cli 3 + tinymce5.0版本整合参考:https://liubing. ...
- canvas验证码 uni-app/小程序
1 <template> 2 <view class="logo-wrapper"> 3 <view class="logo-img&quo ...