进行性能分析
接口没有报错或者错误率低于1%,继续增加并发还是一样,这个时候需要考虑几点
1.是否触发限流,比如waf、Nginx等情况,有没有一些限流的情况,如果触发了限流,请求是没有达到后端的,所以后端它监控也没有报错,整个错误率也是低于正常值,这个时候继续加大并发,请求还是没有到达后端,所以后端不会有任何变化,这个时候去看下waf或者Ngnix,可以看到它们那里其实会有一些报错了,就确定是触发限流了
2.就是看一下线程池是否打满,可以查看后端的服务线程情况或者数据库的连接池,如果线程池打满,那整个TPS也是上不去了,但这个时候其实整个请求会影响成功率,通过成功率可以去判断一下是否是这块出的问题
3.网络的带宽,有些请求,它请求的内容较多,超过整个网络带宽,那也会影响整个TPS,因为在网络层,它整个带宽超过之后,有些请求就会丢弃了,相当于丢包了,这个时候并发也会上不去了
4.除了被压服务,还有可能是发压侧到达了瓶颈这个是常忽略的一点,就是整个发压的机器不够了,集群上不去了,比如单台的发压机设置并发数过高,它也不会去有很大的并发,因为一台机器,大约只能设置200并发,甚至是对于短平快的一些接口只能设置500并发,超过这个并发数,整个发压机就到达瓶颈期,再多的并发它也不会发送更多的请求,这个时候如果这个集群到达整个发压机的瓶颈,那整个压力就会上不去,所以后端看到了整个TPS就是上不去,然后另一种就是TPS上不去,但是你增加并发的时候,就报错,这个时候大概率就是系统到达瓶颈了,先扩容再继续压,或者定位具体哪个服务器有瓶颈根据木桶原理,先把这个服务或者接口先停掉,然后其他接口继续去压测,那如果不想扩容也定位到具体问题,那就直接进行优化,那针对具体进行优化之后再进行压测