故障排查的日常干货
写在前面
松鼠哥的ceph专业课程上线啦!
面向新手同学,从0实战,全面入门ceph安装部署与运维,有需要的同学赶紧扫码订购吧:
每个集群在测试阶段,都应该对集群整体进行一个配置调整和性能评估,在上线前做好充足的准备
环境
手上的这个环境是上线前的测试环境
1 | [tanweijie@test01 ~]$ sudo ceph -s |
算是接手的比较大的一个集群了,9.2PB,使用EC 8+3的策略,仅使用块存储
网络为双万兆光口bond
指标观测
首先是iperf3的测试,结果为
1 | [root@test01 ~]# iperf3 -c ceph01 -i1 -t60 -p 96009 |
这个测试结果有几个注意的地方
- 带宽不足,只有7.27Gb,理想的带宽值至少要到9Gb
- Retr过高,重传意味着丢包,tcp发生丢包会严重影响通信性能
- 波动较大,可以看到,测试输出的带宽值波动超过1Gb
- 窗口值过小,还没有到1MB就开始重传,滑动窗口太小,会降低性能
在集群创建rbd,然后map到某个节点上,使用fio进行测试,结果为
1 | [root@test01 fio-test]# fio large_file.conf |
性能很差,实际测试中还发现,rbd0的iostat表现很差,w_wait非常高,最高的时候超过20s,而且是突发性的波动,有时为0有时特别高,fio表现为,一开始写入很快,但是随着写入时间的推移,写入开始降低并最终降为0,表现很糟糕
瓶颈点排查
一般排查思路是这样的
- 1、检查集群健康状态
- 2、检查节点负载
- 3、检查网络延时
- 4、检查系统配置及优化参数
- 5、其他
上述前面4项均完成检查,没有发现什么异常,负载不高网络延迟不高系统配置及优化参数均配置正常,为什么偏偏性能如此差?
思前想后,既然集群和系统问题不大,多半是网络引发,考虑到iperf3表现差劲,开始着手看网络方面的问题
网络相关的配置有这么几项:
- 1、mtu,这个没改过
- 2、中断,这个没问题
- 3、系统配置,这个没问题
- 4、其他,连防火墙和组网结构排查了,无问题
还有什么遗漏吗?从网络测试来看,发生丢包,缓冲区足够的情况下,有无可能跟网卡特性有关系?如果是网卡处理不过来了,网卡丢包是否有可能?
于是使用ethtool -k
调查,默认参数看不出有什么问题,对照了其他服务器的配置,发现有几个参数不一致
1 | tx-checksum-ipv4 |
使用下面的命令对网卡参数调整
1 | ethtool -K enp103s0f0 tx-tcp6-segmentation off |
配置修改后验证
修改网卡的参数后,再次运行iperf3,结果为
1 | [ 4] 33.00-34.00 sec 1.08 GBytes 9.31 Gbits/sec 23 3.20 MBytes |
针对刚开始的指标,有明显改观
- 带宽提升明显
- 带宽稳定得多
- 滑动窗口增加到3M-4M
- Retry大幅降低
集群再次使用fio进行测试,结果为
1 | [root@test01 fio-test]# fio large_file.conf |
从结果看,效果杠杠,跑满了整个bond带宽
为什么
不知道
确实不知道为什么,有知道的读者希望可以留言告诉我~
随机挑选两台osd节点,重启8次,每次修改其中的一项或者多项,重启后直接跑一次流量测试,然后修改网卡参数值,再进行对比测试,发现,无论修改哪个值,修改后网络都能变好,因而无法确定导致是什么原因引发。。。
对了,光模块是X722,参照服务器的光模块为82599
总结
经过一段时间测试,修改网卡参数后未引发其他问题,与厂家联系后,厂家的研发也不知道为什么…
整个过程几天下来收获还是很大的,定位到问题点并解决,集群总体性能提升明显
- 本文作者: 奋斗的松鼠
- 本文链接: http://www.strugglesquirrel.com/2019/09/06/记一次集群性能瓶颈定位/
- 版权声明: 本博客所有文章除特别声明外,创作版权均为作者个人所有,未经允许禁止转载!