最多能创建TCP连接个数

 我来答
机器1718
2022-06-29 · TA获得超过6769个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:155万
展开全部

TCP连接个数受端口号、文件描述符、线程资源、内存资源、CPU资源的限制。

系统用一个四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}

在local ip, local port固定、不考虑ip地址分类的情况下,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

实际可用端口范围可以如下查看:

每建立一个TCP连接,操作系统分配一个文件描述符,linux 对可打开的文件描述符的数量分别作了三个方面的限制:

系统级 :当前系统可打开的最大数量,通过 cat /proc/sys/fs/file-max 查看

用户级 :指定用户可打开的最大数量,通过 cat /etc/security/limits.conf 查看

进程级 :单个进程可打开的最大数量,通过 cat /proc/sys/fs/nr_open 查看

file-max 表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。

ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

对于服务器来说, file-max 和 ulimit 都需要设置,否则会出现文件描述符耗尽的问题。

按照每个连接,启动一个线程的方式,TCP连接个数受线程个数限制,可以用IO复用方式,一个线程管理多个TCP连接。

每个TCP连接本身,以及这个连接所用到的缓冲区,都是需要占用一定内存。

这个很好理解。

Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式