Ubuntu 22.04下Ceph/RBD、本地NFS访问磁盘性能极低,但直接读写磁盘正常的问题排查求助
Ubuntu 22.04下Ceph/RBD、本地NFS访问磁盘性能极低,但直接读写磁盘正常的问题排查求助
各位大佬好,我遇到了一个快把我搞疯的性能问题,麻烦帮忙分析下!
先说说背景:我之前基于Ubuntu LTS搭建了一个Ceph集群,给Proxmox做RBD存储用,但VM的磁盘读写速度特别慢——不管读还是写都不到10MB/s,有时候甚至跌到KB级。为了排查原因,我搭了一个测试环境:
- 10G交换机、10G网卡
- 两台节点:一台是Ubuntu 22.04的Ceph节点(命名ceph node),带3块SSD+3块HDD;另一台是纯Ubuntu 22.04的客户端节点(命名client node)
但测试下来发现SSD和HDD的性能几乎一样差,于是我干脆在Ceph节点本地做测试,跳过网络环节,结果还是有问题,具体测试过程如下:
系统信息
PRETTY_NAME="Ubuntu 22.04.2 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.2 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
测试步骤及结果
1. 本地映射RBD设备测试
在Ceph节点本地映射自己的RBD镜像,命令:
sudo rbd map speedtest/aaa --id admin --keyring /etc/ceph/ceph.client.admin.keyring --mon-host 127.0.0.1
用fio测试写速度,结果只有2226KiB/s,fio配置如下:
[global] direct=1 rw=write filename=/dev/rbd0 [job] name=test bs=4k iodepth=16 size=200G runtime=60 numjobs=1 time_based rwmixread=70
2. 直接测试裸盘
我移除了所有OSD,直接测试裸盘/dev/sdg,同样用fio,写速度达到了203MB/s,fio配置:
[global] direct=1 rw=write filename=/dev/sdg [job] name=test bs=4k iodepth=16 size=200G runtime=60 numjobs=1 time_based rwmixread=70
3. 本地NFS测试
怀疑是Ceph配置的问题,我又在本地搭了NFS服务器,结果挂载后测试写速度还是超级慢——只有1028kB/s。
/etc/exportfs配置:/media/speedtest *(rw,sync,all_squash,anonuid=0)- 挂载命令:
sudo mount.nfs localhost:/media/speedtest /mnt/ - 磁盘挂载信息:
/dev/sdd1 on /media type ext4 (rw,relatime)
但直接向/media目录写数据时,速度能达到199MB/s,fio配置和之前一致。
现在我真的搞不懂了:直接读写磁盘速度正常,但通过Ceph/RBD或者本地NFS访问同一个磁盘,性能就暴跌到离谱。有没有大佬能指点下排查方向?需要其他信息的话,我随时提供!
备注:内容来源于stack exchange,提问作者Crazy Jerry
相关产品推荐
相关产品推荐

