国产在线视频精品视频,国产亚洲精品久久久久久青梅 ,国产麻豆精品一区,国产真实乱对白精彩久久,国产精品视频一区二区三区四

一臺服務器最大能支持多少條TCP連接

  • 來源面包芯語
  • 日期 2023-08-16 18:26:57

點擊左上方藍色“一口Linux”,選擇“設為星標”

一、一臺服務器最大能打開的文件數(shù)

1、限制參數(shù)

我們知道在Linux中一切皆文件,那么一臺服務器最大能打開多少個文件呢?Linux上能打開的最大文件數(shù)量受三個參數(shù)影響,分別是:

這三個參數(shù)之間還有耦合關系,所以配置值的時候還需要注意以下三點:


(資料圖片僅供參考)

2、調整服務器能打開的最大文件數(shù)示例

假設想讓進程可以打開100萬個文件描述符,這里用修改conf文件的方式給出一個建議。如果日后工作里有類似的需求可以作為參考。

二、一臺服務器最大能支持多少連接

我們知道TCP連接,從根本上看其實就是client和server端在內存中維護的一組【socket內核對象】(這里也對應著TCP四元組:源IP、源端口、目標IP、目標端口),他們只要能夠找到對方,那么就算是一條連接。那么一臺服務器最大能建立多少條連接呢?

如果只以ESTABLISH狀態(tài)的連接來算(這些連接只是建立,但是不收發(fā)數(shù)據(jù)也不處理相關的業(yè)務邏輯)那么一臺服務器最大能建立多少連接呢?以一臺4GB內存的服務器為例!

上面討論的都是進建立連接的理想情況,在現(xiàn)實中如果有頻繁的數(shù)據(jù)收發(fā)和處理(比如:壓縮、加密等),那么一臺服務器能支撐1000連接都算好的了,所以一臺服務器能支撐多少連接還要結合具體的場景去分析,不能光靠理論值去算。拋開業(yè)務邏輯單純的談并發(fā)沒有太大的實際意義。

服務器的開銷大頭往往并不是連接本身,而是每條連接上的數(shù)據(jù)收發(fā),以及請求業(yè)務邏輯處理?。?!

三、一臺客戶端機器最多能發(fā)起多少條連接

我們知道客戶端每和服務端建立一個連接便會消耗掉client端一個端口。一臺機器的端口范圍是【0 ~ 65535】,那么是不是說一臺client機器最多和一臺服務端機器建立65535個連接呢(這65535個端口里還有很多保留端口,可用端口可能只有64000個左右)?

由TCP連接的四元組特性可知,只要四元組里某一個元素不同,那么就認為這是不同的TCP連接。所以需要分情況討論:

因為源IP固定,目標IP和端口固定,四元組中唯一可變化的就是【源端口】,【源端口】的可用范圍又是【0 ~ 65535】,所以一臺client機器最大能建立65535個連接

因為目標IP和端口固定,有 n 個源IP,四元組中可變化的就是【源端口】+ 【源IP】,【源端口】的可用范圍又是【0 ~ 65535】,所以一個IP最大能建立65535個連接,那么n個IP最大就能建立 n * 65535個連接了

以現(xiàn)在的技術,給一個client分配多個IP是非常容易的事情,只需要去聯(lián)系你們網(wǎng)管就可以做到。

源IP固定,目標IP固定,目標端口數(shù)量為m個,可變化的是源端口,而源端口變化范圍是【0 ~ 65535】,所以一臺client機器最大能建立的TCP連接數(shù)量是 65535 * m個

四、其他

在epoll模型中,通過紅黑樹來管理epoll對象所管理的所有socket,用紅黑樹結構來平衡快速刪除、插入、查找socket的效率

五、相關實際問題

在網(wǎng)絡開發(fā)中,很多人對一個基礎問題始終沒有徹底搞明白,那就是一臺機器最多能支撐多少條TCP連接。不過由于客戶端和服務端對端口使用方式不同,這個問題拆開來理解要容易一些。

注意,這里說的是客戶端和服務端都只是角色,并不是指某一臺具體的機器。例如對于我們自己開發(fā)的應用程序來說,當他響應客戶端請求的時候,他就是服務端。當他向MySQL請求數(shù)據(jù)的時候,他又變成了客戶端。

1、"too many open files" 報錯是怎么回事,該如何解決

你在線上可能遇到過too many open files這個錯誤,那么你理解這個報錯發(fā)生的原理嗎?如果讓你修復這個錯誤,應該如何處理呢?

需要注意這三個參數(shù)之間的耦合關系!

2、一臺服務端機器最大究竟能支持多少條連接

因為這里要考慮的是最大數(shù),因此先不考慮連接上的數(shù)據(jù)收發(fā)和處理,僅考慮ESTABLISH狀態(tài)的空連接。那么一臺服務端機器上最大可以支持多少條TCP連接?這個連接數(shù)會受哪些因素的影響?

3、一條客戶端機器最大究竟能支持多少條連接

和服務端不同的是,客戶端每次建立一條連接都需要消耗一個端口。在TCP協(xié)議中,端口是一個2字節(jié)的整數(shù),因此范圍只能是0~65535。那么客戶單最大只能支持65535條連接嗎?有沒有辦法突破這個限制,有的話有哪些辦法?

方式一,為客戶端配置多IP 方式二,分別連接不同的服務端

4、做一個長連接推送產(chǎn)品,支持1億用戶需要多少臺機器

假設你是系統(tǒng)架構師,現(xiàn)在老板給你一個需求,讓你做一個類似友盟upush這樣的產(chǎn)品。要在服務端機器上保持一個和客戶端的長連接,絕大部分情況下連接都是空閑的,每天也就頂多推送兩三次左右。總用戶規(guī)模預計是1億。那么現(xiàn)在請你來評估一下需要多少臺服務器可以支撐這1億條長連接。

精彩文章合集

文章推薦

相關文章

Copyright 2003-2020 www.jjqxw.com, All Rights Reserved 基金前線 版權所有

聯(lián)系我們:562 662 9@qq.com