TIME_WAIT数量太多 造成SocketTimeoutException

本文探讨了在用户端下单场景中,如何通过配置长连接和Linux Net参数来解决5倍压力下的高并发问题,重点在于减少TIME_WAIT状态,提升连接效率。通过调整keepalive参数和TCP定时器设置,结合JMeter压测验证效果。
1、压测问题

用户端下单流程”场景,5倍压力,tcp_time_wait打满6000
在这里插入图片描述

2 、方案1【配置长连接】

出现大量TIME_WAIT的情况:

  • keepalive_requests设置比较小,高并发下超过此值后
    nginx会强制关闭和客户端保持的keepalive长连接;
  • keepalive设置的比较小(空闲数太小),导致高并发下nginx
    会频繁出现连接数震荡(超过该值会关闭连接),不停的关闭、开启和
    后端server保持的keepalive长连接;
http {
   
   
   // 全局配置
   // 长连接响应timeout
  keepalive_timeout 60s; 
  // 与Client连接的"一个长连接"送达的最大请求数(默认是100)
  // 当送达的请求数超过该值后,该连接就会被关闭。
    keepalive_requests 8192; 
  
    upstream servers {
   
   
        server 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值