在搭建好LVS的keepalived服务器之后,给多主多台MySQL服务作系统数据库的负载均衡。通过lvs的VIP地址作为MySQL访问入口地址,web服务器采用K8S多台集群的方式。
访问系统URL的时候,有数据库连接请求的情况下,发现有一定概率的请求等待,且调试这个等待不会超时,无论后端设置怎么样超时时间都没有效果。
起初以为是LVS流程转发问题,认为是什么原因造成一定几率的SYNC_RECV 等待。最后通过web编写日志输出服务器IP,发现每次请求等待都是固定的K8S中某个pod的ip地址,然后查看这个pod对应安装所在的物理服务器情况,最终找到真正原因。
原来pod所在这台物理机曾经被我设置过用于给MySQL负载均衡LVS的VIP网卡回路地址,这样每次这台物理机上的web服务要和MySQL服务通讯的时候,被本机的这个VIP网卡回路地址给拦截了,就像走进了环形跑道一直跑没有终点。几十台物理机里面有两台物理机有设置,所以造成访问URL的时候是偶尔才出现。
最后将对应VIP回路地址给删除解决。