進行性能分析
接口沒有報錯或者錯誤率低于1%,繼續增加并發還是一樣,這個時候需要考慮幾點
1.是否觸發限流,比如waf、Nginx等情況,有沒有一些限流的情況,如果觸發了限流,請求是沒有達到后端的,所以后端它監控也沒有報錯,整個錯誤率也是低于正常值,這個時候繼續加大并發,請求還是沒有到達后端,所以后端不會有任何變化,這個時候去看下waf或者Ngnix,可以看到它們那里其實會有一些報錯了,就確定是觸發限流了
2.就是看一下線程池是否打滿,可以查看后端的服務線程情況或者數據庫的連接池,如果線程池打滿,那整個TPS也是上不去了,但這個時候其實整個請求會影響成功率,通過成功率可以去判斷一下是否是這塊出的問題
3.網絡的帶寬,有些請求,它請求的內容較多,超過整個網絡帶寬,那也會影響整個TPS,因為在網絡層,它整個帶寬超過之后,有些請求就會丟棄了,相當于丟包了,這個時候并發也會上不去了
4.除了被壓服務,還有可能是發壓側到達了瓶頸這個是常忽略的一點,就是整個發壓的機器不夠了,集群上不去了,比如單臺的發壓機設置并發數過高,它也不會去有很大的并發,因為一臺機器,大約只能設置200并發,甚至是對于短平快的一些接口只能設置500并發,超過這個并發數,整個發壓機就到達瓶頸期,再多的并發它也不會發送更多的請求,這個時候如果這個集群到達整個發壓機的瓶頸,那整個壓力就會上不去,所以后端看到了整個TPS就是上不去,然后另一種就是TPS上不去,但是你增加并發的時候,就報錯,這個時候大概率就是系統到達瓶頸了,先擴容再繼續壓,或者定位具體哪個服務器有瓶頸根據木桶原理,先把這個服務或者接口先停掉,然后其他接口繼續去壓測,那如果不想擴容也定位到具體問題,那就直接進行優化,那針對具體進行優化之后再進行壓測