1.并发TCP最大连接数
一个TCP连接有一个四元组唯一标识
{local_ip, local_port, remote_ip, remote_port}
client端建立连接请求时,通常让系统分配一个空闲的本地端口,该端口是独占不共享的,端口类型是unsigned short,共65535个可用,所以
client最大连接数为65535个。
server端固定绑定一个端口来等待client的连接请求,四元组中rempote_ip/remote_port是可变不受控制的,共
2^32 * 2^16组合。
但并不代表一个server可以支持那么多连接,因为有系统上的限制。
每个socket都占用一个文件描述符,而一个进程能打开的描述符数目是有限制的,而且整个系统允许打开的文件数也是有限制的。另外TCP连接数也受服务器资源限制(内存/带宽)。
单进程文件数
ulimit -n//查看允许打开的最大文件数
//修改一个进程文件数限制
修改/etc/security/limits.conf
soft nofile xxx
hard nofile xxx
全局(系统)文件数
cat /proc/sys/fs/file-nr //显示已经分配的文件handle数、已分配但未使用的handle数、允许的最大handle数
修改/etc/sysctl.conf
fs.file-max=xxx
net.ipv4.ip_conntrack_max=xxx
net.ipv4.netfilter.ip_conntrack_max=xxx