高并发问题排查方案

我们的测试环境突然就不能承受一万并发量了

起因是我们的测试人员,在测试某个接口的时候,做了一万并发的压测,
第一次发送一万并发还都会正常响应,第二次发的时候就会部分请求错误了.
具体的错误是服务端拒绝连接,这就说明了并不是接口内部错误,而是资源不足

这个时候身为开发的我,就需要排查问题了.

第一步. 我排查了下 请求的速度 以及 请允许的超时时间

	一个请求响应大概在100毫秒内,这说明是个轻量级请求,完成能承受万级并发
	超时时间在测试环境我都有故意设大,整个架构链路设置成了60秒,所以可以排除.

第二步 cpu与内存

	我把所有链路里的容器内存和cpu占用都看了,使用率远远小于资源的限制,也可以忽略.

第三步 架构能承受的最高并发量

	从负载均衡到nginx-ingress在到nginx在到api服务最后到rpc服务以及缓存和数据库
	这些我也提早设置了最大并发量,每个端都有三个节点,每个节点最大并发量为1万,所以是能够承受住至少3万的并发的.

第四步 宽带

	我登录后台看了下,果然是宽带超了 哭笑不得
	但是为什么第一次并发一万宽带就没超,过了一会第二次一万就宽带超了呢

	随后 我去问了下 测试人员的测试思路
	他们使用的是jmeter测试,配置好请求,点击执行,过去了5千并发,
	过了一会,继续点击执行,又过去了五千并发.

	这超宽带的问题,就在这第二次的五千并发
	因为第一次请求的五千并发,由于还没有完全断开,
	在tcp还在保持连接的状态下
	它的保持活动(Keep-Alive)数据包 以及 拥塞控制机制、又或者是四次挥手
	都是需要占用小量的宽带的,但由于并发数上去,占用的宽带就不会那么小了.

	随后第二次一万并发来了,由于第一次的tcp连接还没有关闭,又创建了一万个新的tcp连接,所以当时最高的并发数已经不是一万了,而是到达了一万五左右.
	
	随后我写了一份脚本,交给测试人员测试,大概就是 一万并发过去后,等待5秒,
	会复用之前的连接,再次发送一万并发过去.
	这样的话那些tcp没断开的连接,就会重新使用,不会全部创建新的连接了.

	测试就成功通过了.

	又或者改变http的Keep-Alive策略,让其连接立马关闭,这样http当断开的时候,服务端也会立马关闭,不会保持活跃.
	
	但一般的情况下,其实前端发送http请求还是会使用Keep-Alive策略的,要不然每发送一次http请求,就真的完全去重新创建tcp连接,在请求发送频繁的情况下,这个开销远远大于保持连接.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值