开发者社区> 问答> 正文

一台机器最多能支持多少条 TCP 连接? 这个公式是什么?

一台机器最多能支持多少条 TCP 连接? 这个公式是什么?怎么计算,64gb的Linux服务器,可以支持多少条?

展开
收起
OSC开源社区 2024-05-11 23:02:26 115 0
2 条回答
写回答
取消 提交回答
    1. 一台机器最多能支持多少条TCP连接。只说服务器端吧,一是受限于linux里配置的可打开文件句柄数等内核参数,但这些都很好修改,调几个参数就行了。二就是内存了,这个是硬性限制。最少也得是3.3KB左右。所以如果算极限情况下的TCP连接数,64gb除以3.3KB就行了。但一般都会给收发缓存区以及其它应用留一些buffer。
    2. 没有固定的公式来精确计算一个系统能支持的最大TCP连接数,因为它取决于多个变量。
    3. 估算64GB Linux服务器能支持的TCP连接数,需要考虑多个因素,包括操作系统、内核参数、其他服务的内存需求以及每个连接的平均内存占用。假设每个TCP连接占用1MB内存(这只是一个估算值,实际可能更大或更小),且系统和应用占用了部分内存,例如32GB,那么理论上剩余的32GB可用于TCP连接。
      因此,可以估算大约支持32,000条TCP连接(32GB / 1MB)。但请注意,这仅仅是理论上的粗略计算,实际支持的连接数还取决于系统资源的其他限制和配置。为了获得更准确的数字,应检查系统设置和当前负载。
    2024-05-13 22:32:27
    赞同 展开评论 打赏
  • 取决于linux服务器的内存大小,内存数 / 静默TCP连接所占大小 3.3k,若linux服务器有64GB的内存,那么最终理论值为:64GB / 3.3k ≈ 2000w个 连接。(如果有数据发送,需要为每条TCP分配发送缓存区,大小受你的参数 net.ipv4.tcp_wmem配置影响,默认情况下最小是4K)

    此外,Socket 实际上是一个文件,也就会对应一个文件描述符。因此,还取决于linux系统对单个进程打开的文件描述符的限制(默认1024),可以通过 ulimit增大文件描述符的数目。

    ——参考链接

    2024-05-12 08:12:14
    赞同 3 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载