Linux服务器进行性能优化中,Linux 到底最大支持多少并发连接
您好,Linux 通过五元组来区分一个连接:协议、源 IP 地址、目的 IP 地址、源端口、目的端口。
对客户端来说,假设它要并发连接同一个服务,那就说明协议、源 IP 地址、目的 IP 地址和目的端口是固定的,唯一可变的是源端口。由于端口号是 16 位的,所以最大的并发连接数也就是 64K。
除此之外还有没有其他的限制的呢?实际上,端口号并不是唯一的限制,内核协议栈中还有限制最大的并发连接数的配置:
net.ipv4.ip_local_port_range 默认是从 32768 开始的
net.ipv4.tcp_fin_timeout 上一次的连接并不是立刻释放的,还需要等待一段时间才会释放
对服务器端来说,又是另一种情况。服务器主要是接受客户端请求,所以协议、目的 IP 地址和目的端口号是固定的,可变的就是客户端源 IP 地址和源端口号。这样,最大的并发连接数也就是可用 IP 地址数量 x 可用端口号数量,即 2^48(IPv6 还会更多)。
跟客户端类似,除了五元组之外,内核协议栈还有很多因素会影响最大连接数。比如最大文件描述符数量、内存、Sokect 缓存、连接跟踪等等。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。