400-638-8808
|
微信公眾號(hào)





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

問題:單臺(tái)服務(wù)器最大支持多少鏈接數(shù)?
分析:在性能測試過程中,經(jīng)常會(huì)接觸到鏈接數(shù)相關(guān)的問題,有一個(gè)問題曾經(jīng)困擾我好長時(shí)間,那就是一臺(tái)服務(wù)器最多能支持多少鏈接數(shù)呢?
有的朋友可能會(huì)說是65535,因?yàn)椴僮飨到y(tǒng)有65535個(gè)端口,那么這個(gè)答案準(zhǔn)確嗎?
首先先了解下如何標(biāo)識(shí)一個(gè)鏈接(記住下面的概念,文章后面要用到),操作系統(tǒng)是通過一個(gè)四元組來標(biāo)識(shí)一個(gè)TCP鏈接:
{本地ip,本地port,遠(yuǎn)程ip,遠(yuǎn)程port}
這四個(gè)要素唯一確定一個(gè)TCP鏈接,任意一個(gè)要素不相同,就認(rèn)為是一個(gè)不同的鏈接。
在Linux系統(tǒng)中,一切皆文件,每一個(gè)TCP鏈接都要占用一個(gè)文件句柄,系統(tǒng)允許創(chuàng)建的鏈接數(shù)取決于句柄數(shù)的上限。超過這個(gè)值再創(chuàng)建鏈接就會(huì)報(bào)這樣的錯(cuò)誤:
“Can t open so many files"
通過命令ulimit -n可以查看當(dāng)前系統(tǒng)允許打開文件數(shù)量的上限,在Linux中這個(gè)值默認(rèn)是1024,也就是說默認(rèn)情況下,只能創(chuàng)建1024個(gè)鏈接。同時(shí)這個(gè)值也是可以修改的,通過修改/etc/security/limits.conf文件,可以把這個(gè)值改大,一般服務(wù)器都會(huì)改的很大,比如我們的服務(wù)器上一般設(shè)置為1000000。
那這么說是不是就意味著只要我改的很大,鏈接數(shù)可以無限大了?
其實(shí)也并不是這樣,創(chuàng)建鏈接的時(shí)候,一般分為兩個(gè)端,即鏈接的發(fā)起端和鏈接接收端。比如我們現(xiàn)在使用Jmeter進(jìn)行壓測,被測系統(tǒng)部署在Tomcat服務(wù)器10.0.0.3上,使用的是8080端口。如果我們用5個(gè)并發(fā)來進(jìn)行壓測的話,創(chuàng)建的鏈接如下圖所示

鏈接發(fā)起端
對于Jmeter來說,它是鏈接發(fā)起端,Jmeter創(chuàng)建了5個(gè)鏈接去連接服務(wù)端的8080端口,每個(gè)新建鏈接會(huì)占用了一個(gè)端口號(hào),如圖中的10001-10005。在操作系統(tǒng)中,端口號(hào)的范圍是0-65535,其中0-1024是預(yù)留端口號(hào),不可使用,其他的端口都是可以使用的。也就是說,在鏈接發(fā)起端,受端口號(hào)的限制理論上最多可以創(chuàng)建64000左右鏈接。
那么有沒有辦法超過這個(gè)限制呢,答案是肯定的!
通過TCP標(biāo)識(shí)的四元組可以看到,對于鏈接發(fā)起端,影響鏈接數(shù)的是本地ip和port,端口號(hào)受限于65535,已經(jīng)沒辦法增加了。那我們可以增加本地ip來達(dá)到這個(gè)目的。一般情況下,服務(wù)器的一個(gè)網(wǎng)卡上只綁定了一個(gè)ip,對外通信都使用這個(gè)ip進(jìn)行。其實(shí)網(wǎng)卡是支持一個(gè)綁定多個(gè)IP的(必須確保ip是有效的且未使用的)
ifconfig eth0:1 10.0.0.5
以上命令可以在eth0網(wǎng)卡上增加一個(gè)ip 10.0.0.5,服務(wù)器網(wǎng)卡每增加一個(gè)ip,就可以允許在這個(gè)ip上再創(chuàng)建65535左右的鏈接數(shù)。
我曾經(jīng)做過一個(gè)郵件網(wǎng)關(guān)的鏈接數(shù)測試,目的是為了測試網(wǎng)關(guān)服務(wù)器可以接收并且保持多少TCP長連接。正常情況下,受限于單臺(tái)機(jī)器65535端口號(hào)的影響,客戶端想創(chuàng)建25萬TCP長連接,至少需要4臺(tái)機(jī)器。通過對客戶端網(wǎng)卡綁定多IP的方法,成功在一臺(tái)機(jī)器上創(chuàng)建了25萬個(gè)鏈接。
當(dāng)然,這種手段只是一種非常規(guī)的操作,只是為了進(jìn)行某種特殊場景的測試。正常情況下不推薦網(wǎng)卡綁定多個(gè)IP。
鏈接接收端
對于Tomcat服務(wù)器來講,它是鏈接接收端,它是不是也受限于65535呢?并不是,從上面圖中可以看到,Jmeter發(fā)起的所有鏈接都創(chuàng)建在Tomcat服務(wù)器的8080端口,也就是說對于鏈接接收端,所有的鏈接占用的是同一個(gè)端口。根據(jù)TCP標(biāo)識(shí)四元組可以分析出,一個(gè)鏈接接收端,最大的TCP鏈接數(shù)=所有有效ip排列組合的數(shù)量*端口數(shù)量65535,這個(gè)計(jì)算結(jié)果應(yīng)該是一個(gè)天文數(shù)字(我數(shù)學(xué)不好就不計(jì)算了,差不多相當(dāng)于我一年的工資總和)。因此鏈接接收端支持的鏈接數(shù)理論上可以認(rèn)為是無限大的。
上面介紹的一些數(shù)據(jù)都是理論上單臺(tái)機(jī)器可以支持的TCP鏈接數(shù),實(shí)際情況下,每創(chuàng)建一個(gè)鏈接需要消耗一定的內(nèi)存,大概是4-10kb,所以鏈接數(shù)也受限于機(jī)器的總內(nèi)存。
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺(tái)灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國云主機(jī) 韓國云主機(jī) 新加坡云主機(jī) 臺(tái)灣云主機(jī) 日本云主機(jī) 德國云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點(diǎn)定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊(duì)建設(shè) 加入天下數(shù)據(jù) 媒體報(bào)道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號(hào)
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號(hào)
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號(hào)建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品