jmeter性能測試java.net.SocketTimeoutException: connect timed out,Read timed out

java.net.SocketTimeoutException: connect timed out,Read timed out緣由分析

 

 本人jmter API接口壓測過程當中,出現 java.net.SocketTimeoutException: Read timed out 報錯java

具體排查過程:nginx

1. 首先排查jmeter到服務器的網絡沒有問題數據庫

2. 因發起的壓力測試時F5負載無權限查看,因此把API調用地址的負載均衡設置成了NGINiX繼續查看,發現nginx報499錯誤.服務器

   當時沒明白499錯誤的緣由,沒有及時發現問題,查各類問題,499對應的是 「client has closed connection」,表示客戶端主動關閉鏈接,網絡

    (注:後來發現不是客戶端主動關閉的緣由,客戶端主動端口請求鏈接時,NGINX 不會將該請求代理給上游服務,這個時候 access log 中會以 499 記錄這個請求。)負載均衡

3. 上面說看到499誤覺得是客戶端的問題,那麼就開始排查jmter測試

   1)查看jmeter腳本設置的超時時間,已經設置到60s了,繼續調大超時時間到100s仍然沒卵用,spa

   2)排查jmeter java內存,發現java沒存已經設置了5G,和內存沒啥關係.net

4. 用一樣以前能夠發送成功的報文,進行運行仍然報錯代理

5. 進行改接口下游接口進行壓測時,能夠發起壓測成功,那麼此時就考慮是這個接口的問題,要不是改接口的負載均衡有問題,要不是負載均衡下的服務器主機有問題n

    因壓測系統是F5負載均衡咱們無權限不方便查看,並且切換成NGINX負載均衡仍然有問題,大體排查是負載均衡的問題呢,那麼下一步排查負載均衡對應的主機問題

6. 查詢該API接口負載均衡下的各個服務器主機狀況,查看當前應用的LOG日誌已經不打印,確認是是當前主機被掛起了。後重啓主機後OK(後面排查出主機被掛起是由於數據庫有鎖衝突的緣由)

 

總結: 本人當前遇到的這個問題,不是jmeter自身的問題,而是服務器自身響應不過來相應的請求,需排查下游服務器的進行是否被掛起。

相關文章
相關標籤/搜索