一、單場景壓測:1500用戶持續并發3分鐘時,jmeter腳本報錯:
Response code: Non HTTP response code: java.net.BindException
Response message: Non HTTP response message: Address already in use: connect
原因分析:
windows端口被耗盡了(默認1024-5000),而且操作系統要2-4分鐘才會重新釋放這些窗口,所以可以增加windows的可用端口來解決。windows端口最大數為65534
解決方法一:
修改操作系統注冊表
1、cmd輸入:regedit
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters
3、新建 DWORD值,name:MaxUserPort,value:65534(十進制)
4、重啟系統
解決方法二:
將HTTP請求:改成短鏈接(去掉 使用 keepAlive 的勾)
兩種解決方法均設置后,請求的錯誤百分比可以大大降低
二、socket closed
問題原因:在JMeter下,發送http 請求時,一般都是默認選擇了use keepAlive,這個是連接協議,默認勾選了這個(如果不勾選的話,也不會保存),但其配置JMeter.properties中的時間設置默認卻是注銷的,也是是說,不會等待,一旦連接空閑,則立馬斷開了,導致我們壓測中出現了事務失敗的情形。
解決:修改httpclient4.idletimeout=<time in ms> 設置成自己覺得合理的時間,一般可設置成10-60s(表示連接空閑10s后才會斷開),注意這邊單位是ms。修改完成后再次壓測,錯誤不再有了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。