Windows系统性能测试方法
更新时间:2024-12-20
本文介绍如何在Windows系统中使用FIO工具对CFS进行数据读写(不涉及元数据)IOPS、吞吐和时延的性能测试。
前提条件
- 您已创建待测试的CFS文件系统,并将CFS文件系统挂载到BCC云服务器上。
- 创建CFS文件系统请见:创建文件系统。
- Windows系统挂载SMB协议CFS文件系统请见:Windows系统挂载与卸载SMB协议CFS。
- CFS所提供的性能规格,除时延参数外,均需要一定规模的并发压测才能达到最大值。建议压测时准备32C以上的BCC云服务器作为客户端,可满足大部分场景的压测需求。其他压测需求,可根据实际情况配置对应的BCC云服务器。
- 进行性能压测时,尤其是时延测试,需要保证BCC云服务器(客户端)和 CFS 处于同可用区。跨可用区测试的性能结果会和标准值有较大差异,不具备参考价值,应尽量避免。
背景信息
推荐使用 FIO 工具测试CFS,不同工具测试的CFS性能会有差异,难以反映真实性能。本文示例的性能参数,均为Windows系统下采用FIO工具的测试结果,以此作为CFS产品性能指标参考。本次具体的性能指标说明如下:
- IOPS:每秒读写数据块的数量,单位 个/s。建议在数据块较小(512bytes/4k/8k/16k)场景下进行 IOPS 的基准测试;
- 吞吐:每秒读写数据量的大小,单位 GiB/s 或 MiB/s。建议在数据块较大(256k/512k/1M)场景下进行吞吐的基准测试;
- 时延:处理读写请求的耗时,单位 ms。主要针对单线程以及多线程并发读写时的IO时延进行基准测试;针对平均时延、最大时延以及99.9%分位时延(即99.0%的时延小于该值)进行基准测试。
测试步骤
- 远程登录BCC云服务器(客户端)。
- 安装FIO测试工具,您可以下载msi格式的安装包进行安装。FIO安装包下载地址,请参见 fio官网。
- 将CFS挂载到Z盘,FIO可执行文件安装在
C:\Program Files\fio\fio.exe
为例,在单台Windows BCC中执行以下命令测试性能。 - 在单台Linux BCC中执行以下命令测试性能。
测试性能 | 测试命令参考 |
---|---|
IOPS | ## 128并发下随机读写IOPS |
吞吐 | ## 8并发下顺序读写吞吐。吞吐性能受限于BCC带宽,为了测试获得最准确吞吐性能,建议根据客户端配置情况合理配置 --numjobs 参数。 |
时延 | ## 单线程下读写时延 |
说明:如需要进行多线程测试,建议您根据压测时客户端配置情况合理设置--numjobs参数。
附录 - FIO参数说明
测试命令中有关FIO各参数含义的说明如下表所示。
参数 | 说明 |
---|---|
direct | 表示是否使用direct I/O。默认值:1。 |
ioengine | 表示测试时FIO选择哪种I/O引擎,通常选择libaio,更符合日常应用模式,更多的选择请查阅FIO官方文档。 |
rw | 表示测试时的读写策略。您可以设置为: |
bs | 表示I/O单元的块大小(block size)。默认值:4 KiB。读取和写入的值可以以read、write格式单独指定,其中任何一个都可以为空以将该值保留为其默认值。 |
size | 表示测试文件大小。 FIO会将指定的文件大小全部读/写完成,然后才停止测试,除非受到其他选项(例如运行时)的限制。如果未指定该参数,FIO将使用给定文件或设备的完整大小。也可以将大小作为1到100之间的百分比给出。例如指定size=20%,FIO将使用给定文件或设备完整大小的20%空间。 |
runtime | 表示测试时间,即FIO运行时长。 如果未指定该参数,则FIO会持续将上述size指定大小的文件,以每次bs值为块大小读/写完。 |
time_based | 如果指定了运行时间,即使文件已完全读写,也会按指定的持续时间运行。相同的工作负载将根据运行时间重复执行。 |
group_reporting | 表示测试结果显示模式。如果指定该参数,测试结果会汇总每个进程的统计信息,而不是以不同任务来统计信息。 |
directory | 表示待测试的文件系统挂载路径。例如/mnt/test_perf,请正确替换。 |
name | 表示测试任务名称,可以随意设定。 |
numjobs | 表示测试的并发线程数。 |
有关各参数的更多说明,请参见FIO官方文档。