场景介绍
客户购买弹性文件服务后,如何验证弹性文件服务的性能指标呢?可以使用fio工具对SFS进行吞吐量和IOPS的性能测试。fio是一个开源的I/O压力测试工具。
说明:测试性能依赖client和server之间的网络带宽及文件系统的容量大小。
前提条件
操作步骤
安装I/O压测工具fio
以Linux CentOS系统为例说明:
- 在官网下载fio。
yum install fio
- 安装libaio引擎。
yum install libaio-devel
- 查看fio版本。
fio --version
文件系统性能数据
SFS Turbo文件系统的性能主要有IOPS和吞吐量等指标,具体各指标数据参见下表。
参数 | SFS Turbo标准型 | SFS Turbo性能型 |
---|---|---|
最大容量 | 32TB | 32TB |
最大IOPS | 5000 | 20000 |
最大吞吐量 | 150 MB/s | 350 MB/s |
IOPS性能计算公式 | IOPS = min (5000, 1200 + 6 × 容量) | IOPS = min (20000, 1500 + 20 × 容量) |
IOPS性能计算公式举例说明:
- 单个文件系统IOPS性能 =“最大IOPS”与“基线IOPS + 每GB文件系统的IOPS × 文件系统容量”的最小值。
以SFS Turbo性能型文件系统为例,单个SFS Turbo性能型文件系统的最大IOPS为20000。 - 假如SFS Turbo性能型文件系统容量为500 GB,则该文件系统IOPS性能 = min (20000, 1500 + 20 × 500 ),取20000与11500中的最小值,即该文件系统的IOPS性能为11500。
- 假如SFS Turbo性能型文件系统容量为1000 GB,则该文件系统IOPS性能 = min (20000, 1500 + 20 × 1000 ),取20000与21500中的最小值,即该文件系统的IOPS性能为20000。
- 标准版-增强版和性能型-增强版的文件系统无性能计算公式。标准版-增强版文件系统的IOPS性能为15K,性能型-增强版文件系统的IOPS性能为100K。
通用测试配置样例
本文以SFS Turbo性能型,云服务器规格如下为例说明。
规格:通用计算增强型 | c6.xlarge.4 | 4vCPUs | 16GB
镜像:CentOS 7.6 64bit
说明以下提供的预估值为单台弹性云服务器ECS测试的结果。建议使用多台ECS测试,以达到弹性文件服务的性能指标。
混合读写,读写比例7:3
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=30 --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
混合读写,读写比例3:7
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=70 --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
顺序读IOPS
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=read --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
随机读IOPS
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=randread --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
顺序写IOPS
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=write --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
随机写IOPS
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=4k --iodepth=128 --size=10240M --readwrite=randwrite --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
顺序读带宽
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=read --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
随机读带宽
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=randread --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
顺序写带宽
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=write --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
随机写带宽
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs_turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=randwrite --fallocate=none
说明:
其中,“/mnt/sfs_turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs_turbo”目录下的“test_fio”文件,请根据实际填写。
- fio结果: