最近使用jmater对接口进行性能压测,发现服务端cpu使用率不高,tps始终上不去。
使用的是腾讯云的clb负载均衡,后端服务一个3台
排查1:网关是否有限流,经过排查后发现没有任何限制,问题依旧
排查2:怀疑使用同一个ip对服务器api进行压测,网关检测到相同ip在短时间内大量请求进来进行自动限流。
改进,在jmater请求头添加模拟真实ip,问题依旧
排查3:使用jmater分布式部署进行压测,问题依旧
排查4:将jmater放到linux上进行压测,问题依旧
最后发现问题:
在http请求设置里面 使用keepalive 勾上 tps上去了
问题分析:
在http早期,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。
使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)