文章詳情頁
java - 壓測tomcat,無法理解其工作機制?
瀏覽:81日期:2023-10-18 13:33:26
問題描述
前提:1.公司進行一臺部署有http服務的壓測,第一天進行了一晚上(10h)的測試(一次200并發),吞吐量大概56%左右。第二天(期間沒有重啟過tomcat)也進行了一晚上(10h)測試(一次200并發),吞吐量卻降低至16%左右。環境一樣,為何落差那么大?2.我第一天壓測1000個并發時,線程數大概是1000+,但是第二天(期間沒有重啟過tomcat)壓測1000并發時,線程數卻降到700+,為何之前并發數和線程數成正比,后面卻不是了?
上述兩個前提,請問tomcat是有什么策略,還是jdbc連接池或者redis連接池導致以上現象嗎(使用G1回收機制)?
問題解答
回答1:這情況就復雜了,其復雜度取決于你的項目運行環境、依賴哪些其他服務。如果你的壓測環境復雜(就是很多人都在你這臺服務器上運行自己的東西),那壓測結果不穩定是可以預見的。
遇到吞吐量下降時,先判斷瓶頸在哪里:
本機資源是否緊張。本機資源主要包括 CPU、內存、網絡帶寬和磁盤吞吐。這些都需要進行觀測排查。
依賴服務是否緊張,如數據庫、外部接口是否處理時間過長。
如果這些都無法明顯定位問題所在,那就進入程序調試階段了:在每個請求處理過程中,記錄每一步的時長,找出瓶頸在哪一步,這個粒度會很細,會要反復修改日志,反復運行,反復觀察,但一定會找到問題。
不要一遇到問題就做沒有根據的胡亂猜測,這時候“發散思維”幫不上忙,要做的是對問題順藤摸瓜,嚴謹分析。
標簽:
java
排行榜
