????????在windows 環(huán)境下使用jmeter 進(jìn)行壓測(cè)的過(guò)程中,通常會(huì)遇到這樣的錯(cuò)誤:
? ? ? ? java.net.BindException:Address already in use:conned? ? ? ? ......
????????“JMeter Address Already in use”,? 這是windows本身提供的默認(rèn)端口訪問(wèn)機(jī)制的問(wèn)題引起。
????????執(zhí)行JMeter時(shí),當(dāng)并發(fā)線程數(shù)較高時(shí)(尤其是測(cè)試機(jī)器還存在連接其他服務(wù)器的socket),運(yùn)行一會(huì)就會(huì)產(chǎn)生address already in use的異常,這是因?yàn)閃indows中TCP客戶端和服務(wù)器連接時(shí),客戶端必須分配一個(gè)動(dòng)態(tài)端口,默認(rèn)情況下這個(gè)動(dòng)態(tài)端口的分配范圍為 1024-5000 ,也就是說(shuō)默認(rèn)情況下,客戶端最多可以同時(shí)發(fā)起3977 個(gè)Socket 連接,如果線程數(shù)過(guò)多,導(dǎo)致了我們?cè)诙虝r(shí)間內(nèi)發(fā)起大量請(qǐng)求的時(shí)候?qū)⒍丝谡紳M了且無(wú)法及時(shí)回收,導(dǎo)致客戶端的地址就會(huì)不夠用,就會(huì)引發(fā)該異常。
? ? ?解決方案一:
????????Jmeter里的http sample勾選了keep alive,導(dǎo)致會(huì)話一直保持,而windows本身的端口有限,導(dǎo)致端口被占用完后,無(wú)法分配新的端口,因此會(huì)產(chǎn)生java.net.BindException: Address already in use: connect 報(bào)錯(cuò)。
? ? ? ? 解決方法:HTTP SAMPLE?不勾選"KeepAlive"即可,如下圖所示:
??????解決方案二:
? ? ? ? 步驟一:按win+r 鍵,打開運(yùn)行窗品cmd,輸入“regedit”命令打開注冊(cè)表
?????????步驟二:打開注冊(cè)表
? ?????????1、在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目錄下
????????????2、右鍵Parameters 新建DWORD
? ? ????????3、輸入名字為MaxUserPort,輸入數(shù)值65534(十進(jìn)制)
? ? ? ? ? ? 4、再次右鍵?Parameters?新建DWORD,名字為TCPTimedWaitDelay,輸入數(shù)值30(十進(jìn)制)表示30秒回收端口
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-619050.html
? ? ? ? ?步驟三:重啟計(jì)算機(jī)即可,親測(cè)試可以解決上述問(wèn)題,生效的最大端口號(hào)及回收時(shí)間如下圖所示。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-619050.html
到了這里,關(guān)于JMeter Address Already in use 實(shí)測(cè)2種解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!