TCP连接出现大量CLOSE

编程入门 行业动态 更新时间:2024-10-26 09:20:19

<a href=https://www.elefans.com/category/jswz/34/1769077.html style=TCP连接出现大量CLOSE"/>

TCP连接出现大量CLOSE

背景

日常运维过程中,收到“应用A”突然挂起没有处理请求的告警,然后触发“存活检查”不通过,自动重启了。

问题

为什么“应用A”突然挂起?

分析

排查过程很长,走了很多弯路,这里只列出本案例有效行动:

  • jstack 1  > /tmp/1.log      反复dump 出多个java线程文件进行分析。
  • netstat -anp | grep CLOSE_WAIT    统计CLOSE_WAIT

发现一个规律,端口8085 CLOSE_WAIT 出现的次数与java线程文件的“"http-nio-8085-exec-7" #109 daemon prio=5 os prio=0 tid=0x00007f90ced37000 nid=0x77 in Object.wait() [0x00007f9074965000]” 次数一致

进一步分析,java出现Object.wait()是一个对象锁,让线程进入“等待状态”

行动

与开发沟通,通过检查代码没有显式声明object.wait() , 经过反复排查,最后怀疑是okhttp的bug,开发同学查阅后发现果然是bug

“  这个是okhttp3.8.1的版本问题,升级一下到3.14.9,”

结论

升级okhttp到3.14.9 , 经过复核后,没有在发现类似的情况。

备注

okhttp的超时间设置:

private static final int CONNECT_TIMEOUT = 10;
private static final int READ_TIMEOUT = 3;
private static final Int WRITE_TIMEOUT = 10;

更多推荐

TCP连接出现大量CLOSE

本文发布于:2023-11-15 02:21:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1592034.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:TCP   CLOSE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!