Linux對外連線埠數限制
這兩天做壓力測試,發現了一個問題,當模擬TCP client對外發起連線數達到28000左右時,開始大量拋如下異常:
java.net.BindException:Cannot assign requested address
atsun.nio.ch.Net.connect0(Native Method)
atsun.nio.ch.Net.connect(Net.java:364)
atsun.nio.ch.Net.connect(Net.java:356)
atsun.nio.ch.UnixAsynchronousSocketChannelImpl.implConnect(UnixAsynchronousSocketChannelImpl.java:326)
atsun.nio.ch.AsynchronousSocketChannelImpl.connect(AsynchronousSocketChannelImpl.java:195)
atcom.aliyun.talk.mon.stack.comm.AsyncConnection.connect(AsyncConnection.java:85)
研究發現,Linux對外的隨機分配埠是由一定限制的,理論上單機對外的埠最大值為65535,除去一些保留埠和被佔用埠外,也應該在6W左右,但實際上單機建立對外連線時,預設不超過28232個連線。
執行以下命令就很清楚原因了:
$ cat /proc/sys/net/ipv4/ip_local_port_range
輸出結果為:
32768 61000
這就是Linux隨機分配埠的範圍,如果在該範圍內有被佔用的埠,那麼連線數肯定小於28232.如果想更改這個範圍,可以執行以下命令:
#echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range
相關文章
- Linux檢視埠併發連線數Linux
- Linux 檢視對外開放埠Linux
- Linux中連線埠命令有哪些?Linux
- nginx如何限制併發連線請求數?Nginx
- Linux 預設連線數Linux
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- Linux apache怎麼限制併發連線和下載速度LinuxApache
- FTP資料埠連線FTP
- 詳解nginx的請求限制(連線限制和請求限制)Nginx
- GBase 資料庫使用者的最大連線數限制資料庫
- Cookie 不受埠限制Cookie
- sql 內連線和外連線SQL
- Linux埠對映是什麼?如何進行埠對映?Linux
- 在Linux中,如何分析網路連線和埠占用情況?Linux
- Linux測試點對點連線速度工具Linux
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- Linux下埠對映工具rinetdLinux
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- 無公網ip 實現外網免費連線內網ssh(22)埠內網
- [20191112]oracle共享連線模式埠.txtOracle模式
- NGINX限制連線的實踐 (Defense DDOS)Nginx
- linux 檢視伺服器的連線數Linux伺服器
- Jtti講解Linux最大連線數有多大?JttiLinux
- OECD:2018年全球外資限制指數
- linux,ssh連線Linux
- linux系統影響tcp連線數的因素LinuxTCP
- 內聯,左外聯,右外聯,全連線,交叉連線 的區別
- Linux 或 Windows 上實現埠對映LinuxWindows
- EOSCleos連線到非預設主機/埠
- [20191113]oracle共享連線模式埠2.txtOracle模式
- gdbserver連線Ubuntu除錯程式(使用串列埠)ServerUbuntu除錯串列埠
- 配置pycharm連線linuxPyCharmLinux
- linux配置連線xshellLinux
- linux連線window cmdLinux
- Linux多個埠組合,iptables使用multiport 新增多個不連續埠Linux
- 連線池和連線數詳解
- 限制單個IP併發TCP連線的方法TCP
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- Mysql——內外連線,事物,索引MySql索引