一、问题描述
1.1 问题产生记录
准生产环境报出如下错误:连接某个服务器的时候出现连接超时现象;服务间调用是通过feign+nacos实现的;服务部署是用k8s实现的;初步判断是A->B调用是服务端出了初五
二、问题定位
2.1 问题排查记录
登录机器查看对应ip的服务,
获取返回的容器id: docker ps | grep {服务名称};获取返回的容器id
获取服务进程: docker inspect {容器id} | grep -i pid; 获取容器运行的进程id
查看进程对应的服务端网络状况: nsenter -t {pid} -n ss -lnt 查看网络情况;返回参数解释:
Recv-Q表示当前accept queue中的连接数量。
Send-Q表示accept queue的最大长度(Send-Q的值由net.core.somaxconn,net.ipv4.tcp_max_syn_backlog和应用参数取最小值)。
常见有Tomcat设置acceptCount,nginx配置backlog。
排查过程中发现Recv-Q的值大于Send-Q的值,存在syn丢包的情况。
2.2 问题原因
网络连接过程,服务端存在两种状态;listen和es