jmeter 壓力測試地址占用

windows下Jmeter壓測端口占用問題

1 前情提要

人臉識別項目中,云平臺新增了人臉識別的校驗接口苹丸∨阢澹考慮到存在大量用戶并發(fā)使用人臉識別功能登錄的情況,需要對涉及到的接口進行壓力測試(后續(xù)簡稱壓測)课梳,來確保上線后的系統(tǒng)質量更穩(wěn)定距辆。

2 壓測環(huán)境配置

壓測發(fā)起設備:windows 10
網絡:局域網
壓測軟件:Jmeter 5.0
壓測系統(tǒng)內存:Ubuntu 4核8G
PHP 版本:php7.1.23
Nginx 版本:nginx1.14.0
MySQL版本:5.7.24
Redis: 開啟
CDN:關閉

3 報錯信息描述

壓測的初期,在設置了 150qps/s 的并發(fā)數下壓測幾分鐘后 Jmeter 就出現了如下報錯惦界。


    JAVA.NET.BINDEXCEPTION: ADDRESS ALREADY IN USE: CONNECT

在這里插入圖片描述

4 問題排查

開始考慮的方向是Nginx挑格、PHP、MySQL做了相關限制導致線程被占用沾歪, 但是修改對應的配置后發(fā)現沒有任何效果,該報錯的還是報錯雾消。 查了一波資料灾搏,發(fā)現 windows 環(huán)境下的端口循環(huán)回收需要消耗2~4分鐘。由此猜測可能是由于 windows下壓測端口數有限立润,端口資源被占滿狂窑,沒有及時循環(huán)回收,導致報錯桑腮。

5 初步解決之擴大端口數量

設置 windows下最大端口數 65534泉哈,嘗試將端口資源數設置為最大,windows最大能支持65534個端口破讨。

步驟1

使用 win + R 快捷鍵打開 cmd丛晦,輸入 regedit 命令打開注冊表

步驟2 設置 MaxUserPort 數量

2.1 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目錄。

2.2 右擊 Parameters提陶,添加一個新的 DWORD烫沙,命名為MaxUserPort

2.3 然后雙擊 MaxUserPort隙笆,輸入 65534锌蓄,基數選擇 十進制(如果是分布式運行的話,控制機器和負載機器都需要這樣操作)撑柔。

2.4 修改配置完畢后瘸爽, 需要重啟 windows 才會生效。

6 初步實踐

采用上述的解決方案之后铅忿,windows 下設置 150qps/s 并發(fā)數進行壓測剪决,暫時解決了端口占用的問題。在此基礎上辆沦,將壓測的并發(fā)數提高至 700qps/s昼捍,兩分鐘內達到 66000+ 個請求,數量超過了 65534 端口數肢扯,再次出現了同一報錯妒茬。

擴大 windows 端口資源數量, 能夠支持 150qps/s 并發(fā)數的壓測蔚晨。 但是在高并發(fā)數(700qps/s)的壓測下乍钻,即使 windows 端口資源數量設置為最大肛循,也會出現端口占用的問題。

7 深入研究之提高端口使用率

又是一波海量搜索银择,定位到了兩個影響端口使用率的主要因素多糠,具體如下。

  • windows下的端口 Time_Wait 導致端口無法使用

  • windows下的端口 CLOSE_WAIT 導致端口無法使用

7.1 Time_Wait 解決方案

主要思路是通過縮短 TIME_WAIT 的等待時間浩考,提高端口的使用率夹孔。

step1: 使用 win + R 快捷鍵打開 cmd,輸入 regedit 命令打開注冊表析孽。

step2: 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目錄搭伤。

step3: 右擊 parameters,添加一個新的DWORD袜瞬,命名為 TcpTimedWaitDelay怜俐,將值設置為30, 縮短 TIME_WAIT 的等待時間。

step4: 重啟windows邓尤,配置項生效拍鲤。

7.2 CLOSE_WAIT

CLOSE_WAIT 引發(fā)問題

Close_Wait 會占用一個連接,網絡可用連接小汞扎。當數量過多時季稳,可能會引起網絡性能下降,并占用系統(tǒng)非換頁內存佩捞。尤其是在有連接池的情況下(比如 HttpRequest)绞幌,會耗盡連接池的網絡連接數,導致無法建立網絡連接一忱。

CLOSE_WAIT 產生原因
  • 一般情況下是因為 TCP 連接沒有調用關閉方法莲蜘,需要應用來處理網絡鏈接關閉。

  • 如果是Web請求帘营,經常是因為 ResponseBodyStream 沒有調用 Close票渠。舉個例子,Widnows 下使用 HttpWebRequest 一定要保證 GetRequestStreamGetResponse 對象關閉芬迄,否則容易造成連接處于 CLOSE_WAIT 狀態(tài)问顷。

  • TCP的 KeepLive 功能, 操作系統(tǒng) 默認 7200秒 (2小時) 自動清理一次 CLOSE_WAIT 的連接禀梳,滿足不了高并發(fā)下的端口需求數杜窄。支持自定義配置。

CLOSE_WAIT 解決方案

step1: 使用 win + R 快捷鍵打開 cmd算途,輸入 regedit 命令打開注冊表塞耕。

step2: 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目錄。

step3: 在該目錄下添加新的配置項嘴瓤。設置合理的Keepalive參數扫外。

"KeepAliveTime"=dword:006ddd00

"KeepAliveInterval"=dword:000003e8

"MaxDataRetries"="5"

step4: 重啟windows莉钙,配置項生效。

8 總結

解決問題的關鍵

敲黑板筛谚,劃重點

  • 擴大端口數量
  • 提高端口使用率
至此磁玉,windows下使用 Jmeter 壓測 出現的"ADDRESS ALREADY IN USE: CONNECT"的問題得以解決,完結散花驾讲。
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末蚊伞,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子蝎毡,更是在濱河造成了極大的恐慌厚柳,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沐兵,死亡現場離奇詭異,居然都是意外死亡便监,警方通過查閱死者的電腦和手機扎谎,發(fā)現死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烧董,“玉大人毁靶,你說我怎么就攤上這事⊙芬疲” “怎么了预吆?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胳泉。 經常有香客問我拐叉,道長,這世上最難降的妖魔是什么扇商? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任凤瘦,我火速辦了婚禮,結果婚禮上案铺,老公的妹妹穿的比我還像新娘蔬芥。我一直安慰自己,他們只是感情好控汉,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布笔诵。 她就那樣靜靜地躺著,像睡著了一般姑子。 火紅的嫁衣襯著肌膚如雪乎婿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天壁酬,我揣著相機與錄音次酌,去河邊找鬼恨课。 笑死,一個胖子當著我的面吹牛岳服,可吹牛的內容都是我干的剂公。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼吊宋,長吁一口氣:“原來是場噩夢啊……” “哼纲辽!你這毒婦竟也來了?” 一聲冷哼從身側響起璃搜,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤拖吼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后这吻,有當地人在樹林里發(fā)現了一具尸體吊档,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年唾糯,在試婚紗的時候發(fā)現自己被綠了怠硼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡移怯,死狀恐怖香璃,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情舟误,我是刑警寧澤葡秒,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站嵌溢,受9級特大地震影響眯牧,放射性物質發(fā)生泄漏。R本人自食惡果不足惜堵腹,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一炸站、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疚顷,春花似錦旱易、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至笆檀,卻和暖如春忌堂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酗洒。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工士修, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枷遂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓棋嘲,卻偏偏與公主長得像酒唉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沸移,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348