挂载后的Ceph RBD性能大幅低于直接测试的问题排查求助
挂载后的Ceph RBD性能大幅低于直接测试的问题排查求助
各位大佬好,我遇到了一个Ceph RBD的性能瓶颈问题,想请大家帮忙分析下原因:
我的测试环境是:所有测试都在一台10G带宽连接到3个全NVMe闪存Ceph节点的外部服务器上执行。
测试1:直接用FIO的RBD引擎测试
我用下面的FIO配置直接测试RBD镜像:
[global] ioengine=rbd clientname=admin pool=kubernetes-prod rbdname=image01 rw=write bs=4m direct=1 size=512M runtime=30 time_based [rbd_iodepth32] iodepth=32
得到的性能结果符合预期:
write: IOPS=207, BW=830MiB/s (870MB/s)(24.4GiB/30114msec); 0 zone resets
测试2:挂载RBD为ext4后测试
但当我把RBD镜像挂载到系统并创建文件系统后,性能出现了暴跌:
首先执行挂载相关命令:
rbd map image01 -p kubernetes-prod --name client.admin -m 10.0.0.60:6789,10.0.0.61:6789,10.0.0.62 /sbin/mkfs.ext4 -m0 /dev/rbd0 mount /dev/rbd0 /mnt/rbd
然后用下面的FIO配置测试文件系统:
[global] filename=/mnt/rbd/test.bin rw=write bs=4m direct=1 size=512M runtime=30 time_based [rbd_iodepth32] iodepth=32
得到的结果差了不止一倍:
write: IOPS=64, BW=258MiB/s (271MB/s)(7756MiB/30011msec); 0 zone resets
其他测试情况
我还测试了CephFS,也遇到了同样糟糕的性能。我的最终目标是在Kubernetes里通过CSI使用这个集群,但目前的性能完全达不到业务要求。
另外需要说明的是,测试过程中CPU和内存都没有跑满,而且用rbd bench或者rados bench测试时,性能甚至比直接FIO RBD引擎的结果还要好——这就让我更困惑了,为什么挂载后的性能会差这么多?
有没有大佬能指点下排查方向或者可能的原因?
备注:内容来源于stack exchange,提问作者Christian Willing
相关产品推荐
相关产品推荐

