java - 壓測tomcat,無法理解其工作機制?
漂亮男人
漂亮男人 2017-07-03 11:43:40
0
1
964

前提:
1.公司進行一台部署有http服務的壓測,第一天進行了一整晚(10h)的測試(一次200並發),吞吐量大概56 %左右。第二天(期間沒有重啟過tomcat)也進行了一整晚(10h)測試(一次200並發),吞吐量卻降低至16%左右。環境一樣,為何落差那麼大?
2.我第一天壓測1000個並發時,線程數大概是1000 ,但是第二天(期間沒有重啟過tomcat)壓測1000並發時,線程數卻降到700 ,為何之前並發數和線程數成正比,後面卻不是了?

上述兩個前提,請問tomcat是有什麼策略,還是jdbc連接池或redis連接池導致上述現象嗎(使用G1回收機制)?

漂亮男人
漂亮男人

全部回覆(1)
阿神

這情況就複雜了,其複雜度取決於你的專案運作環境、依賴哪些其他服務。如果你的壓測環境複雜(就是很多人在你這台伺服器上運作自己的東西),那麼壓測結果不穩定是可以預見的。

遇到吞吐量下降時,先判斷瓶頸在哪裡:

  1. 本機資源是否緊張。本機資源主要包括 CPU、記憶體、網路頻寬和磁碟吞吐。這些都需要進行觀測檢查。

  2. 依賴服務是否緊張,如資料庫、外部介面是否處理時間過長。

  3. 如果這些都無法明顯定位問題所在,那就進入程序調試階段了:在每個請求處理過程中,記錄每一步的時長,找出瓶頸在哪一步,這個粒度會很細,會要反復修改日誌,反覆運行,反覆觀察,但一定會找到問題。

不要一遇到問題就做沒有根據的胡亂猜測,這時候「發散思維」幫不上忙,要做的是對問題順藤摸瓜,嚴謹分析。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板