1.使用FIO测试和评估ceph性能的正确方法如下
- 测试一个ceph单RBD
同步IOPS测试的IOPS,I/O depth=1,模拟数据库应用读写
fio -filename=/testdir/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=30 -runtime=300 -group_reporting -name=rand_write_4k
- 异步IOPS测试,I/O深度=8,模拟文件读写
fio -filename=/testdir/testfile -direct=1 -iodepth 8 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=30 -runtime=300 -group_reporting -name=rand_write_4k
- 测试ceph单个RBD的latency
I/O latency是完成I/O读写所需的时间。所以我们需要测试同步I/O,而异步I/O是批量下发的
fio -filename=/testdir/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=1 -runtime=300 -group_reporting -name=rand_write_4k
- 测试ceph单RBD吞吐量
测试吞吐量需要足够的工作量。io_size=4K受限于单个RBD的IOPS。测试吞吐量压力不够。所以需要更大的io_size,比如4MB。
fio -filename=/testdir/testfile -direct=1 -iodepth 8 -thread -rw=randwrite -ioengine=libaio -bs=4M -size=1000G -numjobs=10 -runtime=300 -group_reporting -name=rand_write_4M
2.fio结果如下
Jobs: 1 (f=1): [w(1)][100.0%][r=0KiB/s,w=36.7MiB/s][r=0,w=9384 IOPS][eta 00m:00s]
4randwrite: (groupid=0, jobs=1): err= 0: pid=1116460: Wed Sep 25 18:22:31 2019
write: IOPS=5428, BW=21.2MiB/s (22.2MB/s)(3823MiB/180302msec)
slat (nsec): min=968, max=517429, avg=2960.57, stdev=4274.86
clat (usec): min=850, max=1569.3k, avg=5840.28, stdev=25725.92
lat (usec): min=862, max=1569.3k, avg=5843.24, stdev=25725.94
IOPS 是每秒 I/OS 数
Lat 是延迟
BW 是吞吐量
请珍惜劳动成果,支持原创,欢迎点赞或者关注收藏,你每一次的点赞和收藏都是作者的动力,内容如有问题请私信随时联系作者,谢谢!