linux tcp併發連線數分析

2021-10-21 00:17:31 字數 927 閱讀 2656

乙個埠不允許被兩個及以上程序占用(乙個程序可同時占用多個埠)

【作為客戶端】

一、對於伺服器來說,每乙個tcp連線都要占用乙個檔案描述符,一旦檔案描述符使用完,新的連線到來返回給我們的錯誤是"socket/file:can't open so many files"。

這時,你需要明白作業系統可以開啟最大檔案數的限制。

預設為1024 可以執行命令 ulimit -n 1000000或修改配置檔案ulimit -shn 1000000 >> /etc/rc.local來更改

執行 cat /proc/sys/fs/file-nr 檢視控制代碼數 

12720為當前使用   13144104為最大數

注意:在kernel2.6 版本中第二項的值總為0,這並不是乙個錯誤,它實際上意味著已經分配的檔案描述符無一浪費的都已經被使用。可以通過在/etc/sysctl.conf裡定義fs.file-max = 1000000 來調整最後乙個值的大小。

二、作業系統上埠號1024以下是系統保留的,從1024-65535是使用者使用的,所以每一台機器作為客戶端最多發出60000多個併發連線。

【作為服務端】

對於accept來說,accept的sock不佔新的埠,而我們作為伺服器實際只是使用了bind這乙個埠。

server通常固定在某乙個本地埠上監聽,等待client的連線請求。不考慮位址重用的情況下,即使多個ip,本地監聽埠也是獨佔的。因此server端tcp連線4元組中只有remote ip 和 remote port 是可變的,因此最大tcp連線數為客戶端ip數 * 客戶端port數。 對於ipv4,不考慮ip位址等因素,最大tcp連線約為2的32次方(ip數) * 2的16次方(port數)。

也就是server端:單機最大tcp連線數約為:2的48次方。  但是受制於系統的 io等限制,一般到達不了這麼大。

Linux TCP 連線數修改

linux tcp 連線數修改 一 檔案數限制修改 1 vi etc security limits.conf soft nofile 10240 hard nofile 10240 2 vi etc pam.d login session required lib security pam lim...

檢視併發連線數

netstat n awk tcp end 返回結果示例 last ack 5 syn recv 30 established 1597 fin wait1 51 fin wait2 504 time wait 1057 其中的syn recv表示正在等待處理的請求數 established表示正常...

IIS最大併發連線數

最大併發連線數 佇列長度 工作執行緒數 工作執行緒數 iis實際可以第一時間處理的請求數。比如,工作執行緒數 100,一萬個連線請求同時湧過來,那麼只有100個可以被處理,其餘9900個進入等待佇列等待,或者直接以503錯誤 伺服器不可用 返回。工作執行緒可以通過machine.config的max...