最大 tcp 连接数

子凡 2019-06-17 16:36:38
问答

TCP并发连接数就是防止死传输的线程,TCP连接数量越大,成功可能性越大。理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是sever端,其最大并发tcp连接数远不能达到理论上限。

TCP 并发连接数就是防止死传输的线程,TCP 连接数量越大,成功可能性越大。理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是 sever 端,其最大并发 tcp 连接数远不能达到理论上限。

TCP

在 tcp 应用中,server 事先在某个固定端口监听,client 主动发起连接,经过三路握手后建立 tcp 连接。

client 每次发起 tcp 连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他 tcp 连接共享。tcp 端口的数据类型是 unsigned short,因此本地端口个数最大只有 65536,端口 0 有特殊含义,不能使用,这样可用端口最多只有 65535,所以在全部作为 client 端的情况下,最大 tcp 连接数为 65535,这些连接可以连到不同的 server ip。

在 unix/linux 下限制连接数的主要因素是内存和允许的文件描述符个数(每个 tcp 连接都要占用一定内存,每个 socket 就是一个文件描述符),另外 1024 以下的端口通常为保留端口。在默认 2.6 内核配置下,经过试验,每个 socket 占用内存在 15~20k 之间。

对 server 端,通过增加内存、修改最大文件描述符个数等参数,单机最大并发 TCP 连接数超过 10 万 是没问题的,国外 Urban Airship 公司在产品环境中已做到 50 万并发 。在实际应用中,对大规模网络应用,还需要考虑 C10K 问题。

启动线程数=【任务执行时间/(任务执行时间-IO 等待时间)】*CPU 内核数

最佳启动线程数和 CPU 内核数量成正比,和 IO 阻塞时间成反比。如果任务都是 CPU 计算型任务,那么线程数最多不超过 CPU 内核数,因为启动再多线程,CPU 也来不及调度;相反如果是任务需要等待磁盘操作,网络响应,那么多启动线程有助于提高任务并发度,提高系统吞吐能力,改善系统性能。

在 Linux 平台上,无论编写客户端程序还是服务端程序,在进行高并发 TCP 连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个 TCP 连接都要创建一个 socket 句柄,每个 socket 句柄同时也是一个文件句柄)。

在 Linux 上编写支持高并发 TCP 连接的客户端通讯处理程序时,有时会发现尽管已经解除了系统对用户同时打开文件数的限制,但仍会出现并发 TCP 连接数增加到一定数量时,再也无法成功建立新的 TCP 连接的现象。出现这种现在的原因有多种。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • GitHub

    GitHub,全球最大的代码托管网站

    GitHub 是全球最大的代码托管网站,提供强大的版本控制、项目协作、代码审查和自动化工具,如 GitHub Actions。它以其巨大的开源社区和丰富资源著称,适合所有级别的开发者。GitHub 通过简化开发流程和促进全球协作,成为开源项目和团队协作的首选平台。无论是个人开发者还是企业团队,GitHub 都能提供必要的工具和支持,助力技术创新和高效管理。
  • 虚拟内存 virtual memory

    电脑虚拟内存初始大小和最大值怎么设置

    电脑虚拟内存的初始大小建议设置为与物理内存相同,最大值建议设置为物理内存的1.5到3倍,一般以2倍为佳;调整时先取消自动管理分页文件大小,然后手动设定初始大小和最大值,设置完成后重启电脑使设置生效,适当设置虚拟内存有助于优化电脑性能。
  • SSD

    固态硬盘的最大存储容量是多少

    固态硬盘的存储容量从几十GB到几TB不等,取决于固态硬盘的型号和制造工艺。随着技术的发展和先进制造工艺的运用,固态硬盘的存储容量也在不断增加。
  • WordPress

    WordPress搭建网站最大可以承载多少文章和流量并发

    WordPress理论上可以承载大量的文章和高流量并发。但实际性能取决于服务器资源、数据库配置、插件、主题和外部请求等多个因素。要优化WordPress网站的承载能力,需要关注并优化这些关键点,确保网站快速、稳定并为用户提供流畅的体验。
  • 电脑内存 Computer memory

    电脑内存最大是多少

    电脑内存最大的是128G,从小内存到大内存依次是1G、2G、4G、8G、16G、32G、64G和128G。电脑内存的最大容量取决于电脑使用的架构和类型,对于之前的32位系统,最大内存支持为4GB;现在的64位系统则最大支持到数百GB不等。
  • AIGC 人工智能生成控制

    AIGC对哪些行业影响最大

    AIGC正在各个关键领域如制造业、医疗、金融、交通物流、教育以及娱乐与媒体中产生深远影响。它通过深度分析和学习,优化了工作流程,提高了效率,降低了成本,并推动了个性化服务的发展。随着技术的不断演进,AIGC将继续塑造未来的工作和生活方式。