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 報錯

具體排查過程:

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仍然沒卵用,

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

4. 用同樣之前可以發送成功的報文,進行運行仍然報錯

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

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

6. 查詢該API接口負載均衡下的各個服務器主機情況,查看當前應用的LOG日志已經不打印,確認是是當前主機被掛起了。后重啟主機后OK(后面排查出主機被掛起是因為數據庫有鎖沖突的原因)

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM