上周遇到一个生产故障:业务高峰期,OBProxy连接数飙升到上限,新连接排队等待,大量超时报错。最终定位是应用连接池的maxActive 和minIdle 配置不合理 ,加上OBProxy默认的client_max_connections 未调整。
分享几个排查和优化要点:
-
监控命令 :通过
obproxy_stat.sh或SHOW PROXYSESSION;快速查看当前连接数、活跃连接、每个客户端的连接分布。 - 关键参数 :
-
client_max_connections:控制单个OBProxy允许的最大客户端连接数,默认值较小,需根据业务调整。 -
worker_threads:影响OBProxy处理请求的并发能力。
- 应用端最佳实践 :
- 连接池的
maxActive建议设为client_max_connections / OBProxy节点数的80%。 - 避免
minIdle过大,防止连接长期占用。
想请教大家:
- 有没有遇到过因为OBProxy版本bug 导致连接泄漏的情况?如何识别和规避?
- 多个OBProxy节点做负载均衡时,如何平滑扩缩容 而不影响业务?
【标签】 #OBProxy #连接管理 #故障排查 #性能调优