生产环境 SpringBoot Tomcat 线程卡住

187 天前
 jmychou

生产环境使用 JDK8+SpringBoot2.x+SpringBoot 内嵌 tomcat9.x,

在 K8s Docker 环境部署,最近时有偶发的对方发起 HTTP 请求,这边隔了 2-10s 才会处理请求,网络抓包发现握手和响应请求报文 ACK 都很快,但是链路上看 Servlet 就是间隔了 2-10s 才进行处理

看了下当时的并发、资源情况和 GC 都很正常,由于是偶发的,本地也无法复现,所以想咨询各位大佬

2234 次点击
所在节点    程序员
22 条回复
defunct9
187 天前
iptables 规则太多了?
javak
187 天前
感觉是 k8s 的问题,我们相同版本的 jdk + springboot 。 但是没有用 k8s , 直接用的阿里云的 ecs, 没出现过这种问题。
Scarb
187 天前
服务端负载很高吗?把抓包文件或者截图放上来看看
ssgooglg
187 天前
@defunct9 哥们怎么哪都有你 老摸鱼怪呀
leeyuzhe
187 天前
线程数满了?
cheng6563
187 天前
看是不是 swap 了
justNoBody
187 天前
> 最近时有偶发的对方发起 HTTP 请求,这边隔了 2-10s 才会处理请求

想问一下这里的隔了 2-10s 才会处理请求是通过什么方式确认的?是查看具体的 tomcat http 线程任务打印的日志么?

此外,能不能发一下 tomcat http 线程的配置以及实际的线程信息
cloud107202
187 天前
极大概率是 DNS 解析导致的(遇到过走 ipv6 解析,5s timeout 后回落到 ipv4)。从请求发送端看看,尤其是用了 alpine 镜像的服务容器
2tongW
187 天前
同意楼上的说法,之前我们也有个内网的服务器登录时耗时 10S+其他接口都没问题。最后排查原因是 InetAddress.getLocalHost().getHostName() 的问题。
参考:https://stackoverflow.com/questions/33289695/inetaddress-getlocalhost-slow-to-run-30-seconds
liuhailiang
187 天前
加日志 逐步排查 提供个思路
增加请求 traceid 把请求日志串联起来,并返回给调用方
调用方给出耗时高的 traceid
你这边捞日志看耗时在哪里,当然最好是能接入 apm 系统,可以更直观看到耗时在哪
bthulu
187 天前
看看是不是有人在接口里写了一句 thread.sleep
zed1018
187 天前
想办法抓个火焰图看看
anyele
187 天前
尽量别用 alpine 镜像
jmychou
187 天前
@justNoBody #7 链路 trace 的 servet#service 方法以及过滤器打印的请求日志,这两个时间差不多, 并发不高,tomcat 线程没有满
jmychou
187 天前
@cloud107202 #8 走的注册中心,直接拿 IP 访问的,不用 DNS 解析了吧
jmychou
187 天前
@2tongW #9 走的注册中心,直接拿 IP 访问的,不用 DNS 解析了吧
jmychou
187 天前
@liuhailiang #10 已经有 trace 了,但是只 trace 到 servet#service 这层,前面 tomcat nio 那一层暂时 trace 不到
jmychou
187 天前
@anyele #13 用的麒麟
jmychou
187 天前
@Scarb #3 负载并发不高
YCNQc647Cfngdp89
187 天前
https://stackoverflow.com/questions/9882357/how-to-set-java-net-preferipv4stack-true-at-runtime
https://stackoverflow.com/questions/58991966/what-java-security-egd-option-is-for

我猜可能和这两个有关系,可以试一下;可以用 arthas trace 一下调用链路,看看耗时在哪儿

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043470

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX