运维经典案例学习之GitLab官网在线仓库SSH连接故障排查和经验总结( 九 )

查看后端(由HAproxy记录)显示了一个奇怪的现象:在一小时的峰值 , 后端连接并非均匀分布在所有SSH服务器上 。 在所选的时间内 , 它在给定的秒内从30变化到121 , 这意味着负载平衡不是很平衡 。 查看配置使用的\"balance source\" , 因此给定的客户端IP地址始终会连接到同一后端 。 如果需要会话粘性 , 这是很好的策略 , 但是对SSH , 没有这样的需求 。 因此尝试将其更改为\"leastconn\" , 使用最少数量的当前连接将新的传入连接分发到后端 。 使用新策略后SSH(Git)CPU使用率的结果:

显然 , 该策略很有效果 。 两条低使用率的线条 , 显示的是Canary服务器 , 可以忽略不计 , 但在策略更改之前由于源IP分布不均匀服务器之间负载差异是2:1(30%到60%) , 很明显我们的一些后端比其他后端更加繁忙 。 。

经验四:当选择特定的非默认设置时 , 需要注释或链接到文档/问题 , 为什么 , 后来者会感谢你 。

启用leastconn策略后错误率也明显降低了 。 继续 , 试验限速配置 , 将速率限制降低到100 , 这进一步降低了错误率 , 表明可能对T的初始估计是错误的 。 但如果是这样限制会导致速率限制太高 , 甚至100/s感觉非常低 , 我们不想进一步放弃它 。 随着速率限制尽可能低 , 而且最小化不足 , 尝试增加MaxStartups:首先是为200 , 有效 , 然后到250 , 错误几乎消失了 , 而没有任何负面结果 。

推荐阅读