此处的限制是以下几个部分
每一个tcp的网络连接也是一个socket文件 , 所以有文件句柄数限制
系统级:当前系统可打开的最大数量,通过fs.file-max参数可修改
用户级:指定用户可打开的最大数量,修改/etc/security/limits.conf
进程级:单个进程可打开的最大数量,通过fs.nr_open参数可修改
ulimit可以临时更改
如果上面的都打开到100万限制 , 那么就只剩下内存的限制
每条空的tcp连接大约消耗3.3k , 4G的内存可以支撑100万tcp连接
如果发送数据 , 每条连接至少还得分配4k的接收缓冲区或者更多 net.ipv4.tcp_rmem参数
root@VM-0-4-ubuntu:~# sysctl -a | grep rmem
net.ipv4.tcp_rmem = 4096 87380 5276832
net.ipv4.udp_rmem_min = 4096