线上MySQL使用orchestrator做主从切换。
创建MySQL实例的时候,MySQL控制台调用orchestrator接口,让orchestrator主动发现新的实例。
但是发现调用接口超时。
登陆orchestrator机器
ss -n|less
ss -n|wc -l
发现有上千CLOSE_WAIT状态连接
重启orchestrator进程,问题解决。
过多的close_wait可能是什么原因:https://blog.huoding.com/2016/01/19/488blog.huoding.com TIME_WAIT和CLOSE_WAIT过多-赛里-51CTO博客blog.51cto.com
1. 程序问题:说的具体一点,服务器端的代码,没有写 close 函数关闭 socket 连接,也就不会发出 FIN 报文段;或者出现死循环,服务器端的代码永远执行不到 close。
2. 客户机响应太慢或者 timeout 设置过小