一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)

这篇具有很好参考价值的文章主要介绍了一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考大佬文章:

  • 一台机器最多能撑多少个TCP连接? 今天掰扯清楚!

这个问题要分场景,先说下结论:

  • 客户端:最多支持TCP连接数 = IP数 * 端口数 = IP数 * 65535,其中的IP数是由于linux下可以配置多IP
  • 服务端:取决于linux服务器的内存大小,内存数 / 静默TCP连接所占大小 3.3k,若linux服务器有4GB的内存,那么最终理论值为:4GB / 3.3k ≈ 127w个 连接。(如果有数据发送,需要为每条TCP分配发送缓存区,大小受你的参数 net.ipv4.tcp_wmem配置影响,默认情况下最小是4K
    此外,Socket 实际上是一个文件,也就会对应一个文件描述符。因此,还取决于linux系统对单个进程打开的文件描述符的限制(默认1024),可以通过 ulimit增大文件描述符的数目。

客户端

对于仅有一个IP的客户端来说,最多能支持的连接数受限于端口 ip_local_port_range参数,一般为65535。但是由于linux环境下是能配置多IP的,所以理论值:最多支持TCP连接数 = IP数 * 端口数 = IP数 * 65535

服务端

服务端不同于客户端,最大连接数并不仅仅受限于端口数。否则Nginx服务器只监听了一个80端口,那岂不是最多只能支持一个TCP连接了?显然绝不可能。
一个TCP连接是由一个【四元组:源IP、源端口、目标IP、目标端口】来唯一确定的。

在不考虑地址重用(socket中的 SO_REUSEADDR端口复用选项)的情况下,例如:对只监听80端口Nginx服务器来说,服务器IP和端口是固定的,因此四元组中仅有 客户端IP、客户端端口 是可变的。所以服务端能建立的TCP连接数是:客户端IP数 * 客户端端口数 = 2³² * 2¹⁶

然而linux上不仅仅只能监听80端口,还可以监听其他端口号,比如:MySQL-3306,Redis-6379,一共有2¹⁶=65535个端口,因此服务器理论上最多可以支持的TCP连接数为:客户端IP数 * 客户端端口数 * 服务端监听端口数 = 2³² * 2¹⁶ * 2¹⁶,这个理论上的结果值几乎可以认为是无限大。

其中客户端IP数为何是 2³²
因为32位长度的IPv4地址,共有 2³²个地址,范围是:00000000,00000000,00000000,00000000(十进制表示为0)—— 11111111,11111111,11111111,11111111(十进制表示为2³²-1,4个2⁸ 拼接为2³²)
而端口数默认为65535个,即 2¹⁶ 个

不过理论和实际是有差距的,因为linux每维护一条TCP连接都要消耗资源(处理连接请求、保活、数据收发都需消耗CPU,而维持TCP连接又要消耗内存)。这里我们先不考虑数据的收发,只考虑静止状态下的TCP连接,此状态下对CPU的消耗可以忽略不计,主要考虑内存的影响即可。

一条TCP连接如果不考虑收发数据的话,占用的内存大概是3.3k(如果有数据收发,就需要另外为每条TCP分配发送缓冲区,其大小受参数 net.ipv4.tcp_wmem的配置影响,初始默认为4k。如果收发结束。缓冲区所占的内存才会被回收)。

然而我们linux服务器的内存是有限的,假设只保持连接不收发数据,那么服务器可以建立的最大连接数是:内存数 / 静默TCP连接所占大小 3.3k。假设你的linux服务器有4GB的内存,那么最终理论值为:4GB / 3.3k ≈ 127w条 连接。

所以最终结论:
每一个监听的端口虽然理论值很大,但是这个数字没有实际意义,不现实。服务器最多能支持的TCP连接数最终要取决于linux服务器的内存大小。文章来源地址https://www.toymoban.com/news/detail-489208.html

到了这里,关于一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2核4g服务器能支持多少人访问?阿里云2核4g服务器在线人数

    阿里云2核4G服务器多少钱一年?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年 。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2核4G服务器活动 https://t

    2024年04月23日
    浏览(37)
  • Linux服务器挂载另一台服务器的文件夹(mount)

    我们实际应用中,会常遇到多个Linux服务器之间需要频繁共享文件,或者是一台服务器需要使用另一台服务器的闲置磁盘空间。最方便的方法就是挂载另一台linux文件夹(文件服务器),通俗理解为:当前服务器远程连接了另一台服务器的某个文件夹。 前提: 远程服务器需要

    2024年02月05日
    浏览(38)
  • OceanBase 单机租户最多能支持多少分区?

    OceanBase 单机租户允许创建的最大分区数是多少?作者通过分区超限错误排查,计算出单机允许创建的最大分区数量。 作者:何文超,爱可生南区交付服务部 DBA 团队成员,主要负责 MySQL 故障处理,MySQL 高可用架构改造,OceanBase 相关技术支持。爱好足球,羽毛球。 爱可生开源

    2024年02月09日
    浏览(23)
  • 送了老弟一台 Linux 服务器,它又懵了!

    大家好,我是鱼皮。 前两天我学编程的老弟小阿巴过生日,我问他想要什么礼物。 本来以为他会要什么游戏机、Q 币卡、鼠标键盘啥的,结果小阿巴说:我想要一台服务器。 鱼皮听了,不禁称赞道:真是个学编程的好苗子啊,行,我就送你一台最低配的 Linux 服务器吧!1 核

    2024年02月02日
    浏览(23)
  • 腾讯云CVM服务器2核2g1m带宽支持多少人访问?

    腾讯云2核2g1m的服务器支持多少人同时访问?2核2g1m云服务器短板是在1M公网带宽上,腾讯云服务器网以网站应用为例,当大规模用户同时访问网站时,很大概率会卡在公网带宽上,所以压根就谈不上2核2G的CPU内存计算性能是否够用。1M带宽下载速度峰值可达128KB/秒,假设网页

    2024年02月12日
    浏览(31)
  • Linux 端快速迁移 conda 环境到另一台服务器上

      本文说明如何将一台服务器上的某个 conda 环境快速复制到另一台服务器上。 1. 打包环境   此操作在需要打包 conda 环境的那台服务器上完成。   先后在 shell 中执行以下命令:   操作完成后,会在当前目录下生成一个名为 env_name.tar.gz 的文件。   然后将 env_nam

    2024年02月08日
    浏览(46)
  • 面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解

    转载请注明出处: 服务器最大可以创建多少个TCP连接取决于多个因素,例如服务器的硬件配置、网络带宽、操作系统设置等。 一般来说,现代服务器的硬件资源和网络带宽都比较充足,因此可以创建大量的TCP连接。然而,服务器在创建TCP连接时也会有一些限制,例如操作系

    2023年04月12日
    浏览(30)
  • docker怎么将一台服务器的镜像移动到另外一台服务器

    连接服务器也可以使用ssh连接 提示没有目录的话就创建目录,创建目录命令: mkdir [目录名称]

    2024年02月15日
    浏览(45)
  • nginx 如何实现一台服务器挂了访问另外一台服务器

    如果您想通过 Nginx 实现在 example1.com 服务器挂掉的情况下自动切换到 example2.com 服务器,可以使用 Nginx 的代理模块和负载均衡功能。 以下是一个示例的 Nginx 配置,实现了当 example1.com 服务器不可用时,自动切换到 example2.com 服务器: 在上述示例中: upstream 块定义了服务器组

    2024年02月12日
    浏览(53)
  • Linux 服务器 TCP 连接数参数调整

    服务器 es 或增加 nginx 要想增加处理能力,调整 TCP 连接数可以通过修改操作系统的TCP参数来实现,以下是具体操作步骤,在此做下记录: 1、查看系统TCP连接资源命令 2、调整操作系统的最大连接数限制           /etc/sysctl.conf 文件         然后运行以下命令使设置生

    2024年04月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包