部署在windows上的web服务器高并发时卡顿

服务端架构:Springboot web工程,mybatis连接数据库,c3p0连接池连接数据库。

测试工具:jmeter

单线程访问(单客户端)

总访问次数:289,803次,返回81631次,耗时8分50秒。并发量546次/秒

问题描述:

16300次后卡顿  

32000次后卡顿

48000次后卡顿

65294次后卡顿

81631次后卡顿

...

响应时序图

问题现象:接口周期性的连不上。

 

10客户端同时访问(同时开启10个线程)

总访问次数:281,714次,返回81631次,耗时8分50秒。并发量531次/秒

问题描述:

16023次后卡顿  

32281次后卡顿

48551次后卡顿

64842次后卡顿

81128次后卡顿

...

响应时序图

问题现象:可以发现客户端数量不影响测试结果。

 

更换连接数据库池的中间件,c3p0改成druid连接池

单线程访问(单客户端)

总访问次数:269,896次,返回81655次,耗时8分50秒。并发量509次/秒

问题描述:

16121次后卡顿  

32251次后卡顿

48486次后卡顿

64784次后卡顿

81655次后卡顿

可以发现不同的连接池不影响测试结果。

修改连接池最大连接数20改成200

问题描述:

17307次后卡顿  

33629次后卡顿

48486次后卡顿

64784次后卡顿

82631次后卡顿

真正的原因:window的tcp连接太多,由于大量的TIME_WAIT连接未被释放,导致占用的端口资源一直未被回收,出现了缓冲区空间不足的问题,应用也总是自动断线。

解决方案:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

“MaxUserPort”=dword:0000fffe

“TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值