SFS Turbo性能测试
fio是一个开源的I/O压力测试工具,可以使用fio工具对SFS进行吞吐量和IOPS的性能测试。
注意和说明
测试性能依赖client和server之间的网络带宽及文件系统的容量大小。
安装fio
以Linux CentOS系统为例说明:
文件系统性能数据
SFS Turbo文件系统的性能主要有IOPS和吞吐量等指标,具体各指标数据参见表1。
参数 |
HPC型 |
|||||
---|---|---|---|---|---|---|
20MB/s/TiB |
40MB/s/TiB |
125MB/s/TiB |
250MB/s/TiB |
500MB/s/TiB |
1000MB/s/TiB |
|
最大容量 |
1PB |
1PB |
1PB |
1PB |
1PB |
1PB |
最大IOPS |
25万 |
25万 |
100万 |
100万 |
400万 |
400万 |
最大吞吐量 |
8GB/s |
8GB/s |
20GB/s |
20GB/s |
80GB/s |
80GB/s |
IOPS性能计算公式 |
IOPS=min(250000,600×容量) 其中,容量单位为TB |
IOPS=min(250000,1200×容量) 其中,容量单位为TB |
IOPS=min(1000000,6000×容量) 其中,容量单位为TB |
IOPS=min(1000000,12500×容量) 其中,容量单位为TB |
IOPS=min(4000000,25000×容量) 其中,容量单位为TB |
IOPS=min(4000000,50000×容量) 其中,容量单位为TB |
通用测试配置样例
以下提供的预估值为单台弹性云服务器ECS测试的结果。建议使用多台ECS测试,以达到弹性文件服务的性能指标。
本文以SFS Turbo性能型,云服务器规格如下为例说明。
规格:通用计算增强型 | c3.xlarge.4 | 4vCPUs | 16GB
镜像:CentOS 7.564bit
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=30 --fallocate=none
其中,“/mnt/nfs/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/nfs”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
- fio命令:
fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=70 --fallocate=none
其中,“/mnt/nfs/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/nfs”目录下的“test_fio”文件,请根据实际填写。
- fio结果:
顺序读IOPS
- fio命令:
fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=read --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- fio结果:
随机读IOPS
- fio命令:
fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- fio结果:
顺序写IOPS
- fio命令:
fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- fio结果:
随机写IOPS
- fio命令:
fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randwrite --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- 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 --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- fio结果:
顺序写带宽
- fio命令:
fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1
其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。
- fio结果:
随机写带宽