Linux Jmeter性能壓測常見錯誤排查及解決方法


排除錯誤日志一般方法:查看腳本執行錯誤日志---->接口返回異常查看服務器日志,檢查是否是參數導致的問題或代碼邏輯問題
---->出現網絡相關,先優化壓測及網絡配置再壓測
 
1.Linux下性能壓測報錯,如何查看錯誤日志?
在壓測機的jmeter安裝目錄/bin/user.properties末尾加上:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
執行腳本報錯后停止【因為生成的jtl文件太大】,將jtl拷貝到本地,以查看結果樹的監聽器打開,即可看到接口報錯日志;
 
2.壓測接口返回:java.net.NoRouteToHostException: Cannot assign requested address,端口未釋放導致socket連接失敗
解法一:
(1)調低端口釋放后的等待時間,默認為60s,修改為15~30s。
/proc/sys/net/ipv4/tcp_fin_timeout
(2) 修改 tcp/ip 協議配置,通過配置 
/proc/sys/net/ipv4/tcp_tw_reuse,默認為0,修改為1,釋放TIME_WAIT端口給新連接使用。
(3)  修改 ctp/ip 協議配置,快速回收socket資源,默認為0.修改為1。
/proc/sys/net/ipv4/tcp_tw_recycle
解法二:
(1)/etc/sysctl.conf,在文件中添加如下內容:
net.ipv4.ip_local_port_range = 1024 65535 # 允許使用到的端口范圍
輸入sysctl -p即生效 
 
3.日志中出現too manay open files或者類似信息,原因:服務器允許的最大句柄數、當前用戶允許的最大句柄數或者當前線程允許的最大句柄數沒有調整
解決方法:
(1)在/etc/security/limits.conf文件最后加上如下語句:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
(2)執行 service sshd restart 重啟sshd服務即可生效
若不生效,執行下述命令:
(3)echo ulimit -n 65535 >>/etc/profile
(4)source /etc/profile    #加載修改后的profile 
 
4. 客戶端連接后發現非常多的TIME_WAIT狀態連接,原因:系統中並發非常大,導致客戶端釋放連接后,在服務器端未回收該連接,該 連接處於TIME_WAIT狀態
解決方法:
(1)/etc/sysctl.conf,在文件中添加如下內容:
net.ipv4.tcp_max_tw_buckets = 180000     # 設置tcp連接時TIME_WAIT個數,默認為180000,常用                
只有 60000 多個端口可用的情況下,配置為 net.ipv4.tcp_max_tw_buckets = 55000
輸入sysctl -p即生效


免責聲明!

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



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