HTTP请求超时时间导致的请求长时间等待

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 

发送http请求需要添加超时时间,否则大量的请求会导致被请求方,积累好多待关闭请求,导致后续请求长时间等待,无法释放

参考:https://blog.csdn.net/shootyou/article/details/6615051

 

参考:https://www.cnblogs.com/zj0208/p/7018098.html

 

参考:https://www.cnblogs.com/softidea/p/5741192.html

优化系统参数:

net.ipv4.tcp_tw_recycle


优化步骤:

1,从单线程修改为线程池
2,每10页等待10分钟
3,服务器从2核升级到4核
4,优化服务器配置net.ipv4.tcp_tw_recycle
5,请求添加3个超时时间ConnectTimeout,SocketTimeout,ConnectionRequestTimeout 3分钟
6,发送请求做异常捕获(超时异常)超时之后能继续执行
7,排查程序是否有死循环等异常
8,检查带宽多少
9,查看堆栈信息

posted @ 2019-03-29 00:10  wanhua.wu  阅读(10198)  评论(0编辑  收藏  举报