记一次http访问超时服务器端调试

问题:http访问服务器时没有返回,没有超时,一直在阻塞

处理过程:telnet端口能连上,服务端程序也不存在处理时间过长的情况。

说明tcp连接没问题。推测是客户端连接后再发起请求,服务端阻塞了。因为很多客户端会设置连接超时时间,而不设置请求超时时间。

查看jvm情况可知服务器创建了很多http-nio-9993-exec-线程,推测存在太多为关闭的连接,超出了连接数上线。

这些线程都是空闲(WAITING (parking))状态,说明客户端未正常关闭,并且服务器设置了过长的超时时间。

解决方法:修改了保活超时时间

复制代码
server:
  port: 9993
  tomcat:
#    connection-timeout: 18000000
    connection-timeout: 20000 #连接超时时间
#    keep-alive-timeout: 20000 #长连接,请求完成后保活时间,默认connection-timeout
相关推荐
云边云科技7 分钟前
零售行业新店网络零接触部署场景下,如何选择SDWAN
运维·服务器·网络·人工智能·安全·边缘计算·零售
rainFFrain30 分钟前
Boost搜索引擎项目(详细思路版)
网络·c++·http·搜索引擎
AOwhisky33 分钟前
Linux 文本处理三剑客:awk、grep、sed 完全指南
linux·运维·服务器·网络·云计算·运维开发
.Shu.2 小时前
计算机网络 HTTPS 全流程
网络协议·计算机网络·https
青草地溪水旁2 小时前
网络连接的核心机制
网络
花开富贵贼富贵3 小时前
计算机网络技术学习-day4《路由器配置》
网络·智能路由器·php
绵绵细雨中的乡音4 小时前
网络基础知识
linux·网络
还听珊瑚海吗5 小时前
基于WebSocket和SpringBoot聊天项目ChatterBox测试报告
spring boot·websocket·网络协议
想睡hhh5 小时前
网络基础——协议认识
网络·智能路由器
G_H_S_3_7 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本