簡述:問題:單臺服務器最大支持多少鏈接數(shù)?分析:在性能測試過程中,經(jīng)常會接觸到鏈接數(shù)相關的問題,有一個問題曾經(jīng)困擾我好長時間,那就是一臺服務器最多能支持多少鏈接數(shù)呢?有的朋友可能會說是65535,因為操作系統(tǒng)有65535個端口,那么這個答案準確嗎
問題:單個服務器最大支持多少鏈接?
分析:在性能測試過程中,我經(jīng)常遇到與鏈接數(shù)相關的問題。有一個問題困擾了我很長時間,那就是服務器最多能支持多少鏈接數(shù)?
有些朋友可能會說是65535,因為操作系統(tǒng)有65535個端口,所以答案準確嗎?
首先,了解如何識別鏈接(記住下面的概念,并在文章后面使用)。操作系統(tǒng)通過四元組識別一個鏈接TCP鏈接:
{本地ip,本地port,遠程ip,遠程port}
這四個要素中唯一確定一個TCP鏈接,任何元素都是不同的,被認為是不同的鏈接。
在Linux在系統(tǒng)中,一切都是文件,每一個TCP鏈接占用文件句柄,系統(tǒng)允許創(chuàng)建的鏈接數(shù)取決于句柄數(shù)的上限。超過此值創(chuàng)建鏈接將報告此類錯誤:
“Cantopensomanyfiles"
通過命令ulimit-n查看當前系統(tǒng)允許打開文件數(shù)量的上限Linux默認值為1024,即默認情況下只能創(chuàng)建1024個鏈接。通過修改/etc/security/limits.conf文件,可以增加這個值,一般服務器會變得很大,比如我們的服務器一般設置為1萬。
這是否意味著只要我改變很大,鏈接數(shù)就可以無限大?
事實并非如此。在創(chuàng)建鏈接時,它通常分為兩個端,即鏈接的啟動端和鏈接接收端。例如,我們現(xiàn)在使用它Jmeter壓測系統(tǒng)部署在壓測中Tomcat服務器10.0.0.3.使用8080端口。如果我們使用5個并發(fā)壓力測量,鏈接如下圖所示
鏈接發(fā)起端
對于Jmeter它是鏈接發(fā)起端,Jmeter在連接服務端的8080端口上創(chuàng)建了5個鏈接,每個新鏈接都會占用一個端口號,如圖10001-10005所示。在操作系統(tǒng)中,端口號的范圍為0-65535,其中0-1024是預留端口號,不能使用,其他端口可以使用。也就是說,在鏈接啟動端,理論上最多可以創(chuàng)建6400-996-87560端口,即所有鏈接占用相同的端口。根據(jù)TCP可以分析標識四元組,鏈接接收端,最大TCP鏈接數(shù)=所有有效ip排列組合的數(shù)量*端口數(shù)量為65535,這個計算結(jié)果應該是天文數(shù)字(如果我數(shù)學不好,我就不算了,幾乎相當于我一年的總工資)。因此,理論上可以認為鏈接接收端支持的鏈接數(shù)是無限的。
理論上,單臺機器可以支持上述數(shù)據(jù)TCP鏈接數(shù),實際上,每個鏈接都需要消耗一定的內(nèi)存,大約4-10kb,因此,鏈接數(shù)也受機器總內(nèi)存的限制。
騰佑科技(www.158100.cn)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網(wǎng)基礎設施及軟硬件于一體化的高新技術企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質(zhì),并擁有多個國家版權局認證。公司自成立以來,一直致力于發(fā)展互聯(lián)網(wǎng)IDC數(shù)據(jù)中心DataCenter、云計算Cloud、大數(shù)據(jù)BigDate、人工智能AI、內(nèi)容加速CDN、互聯(lián)網(wǎng)安全、軟件定制開發(fā)等產(chǎn)品服務及行業(yè)客戶技術一體化智能解決方案;2018年成為百度智能云AI河南服務中心。
售前咨詢熱線:400-996-8756
備案提交:0371-89913068
售后客服:0371-89913000
搜索詞
熱門產(chǎn)品推薦