tcp连接数
- 四元组
src ip src port des ip des port - 创建一个连接,返回一个socket
- 只在一个端口创建连接 connect cnnont assign requested address 端口号不足
- 端口 16bit 1~65535 理论上可以创建655536个连接
- linux 可用的端口范围 /proc/sys/net/ipv4/ip_local_port_range
可以看到,当前可以使用的端口范围是 32768 - 61000 每个tcp连接可以占用一个vim /etc/sysctl.conf
net.ipv4.ip_local_port_range = 60000 60009
sysctl -p /etc/sysctl.conf
- 除了和源端口号有关,还和目标端口号有关,修改目标端口号
- 目标监听的地址 0.0.0.0 表示本机上所有的地址
- 文件描述符 error socket too many open files
- linux对文件描述符的限制
系统级: 用户级 cat /etc/security/limits.conf 进程级 - 采用IO复用的方式用一个线程管理多个tcp连接
- tcp连接数太多导致内存溢出的问题 out-of-memory
每个tcp连接和tcp连接所占用的缓冲区 查看读写缓冲区 一个参考文章 https://blog.csdn.net/ysu108/article/details/7764461 - tcp连接还需要cpu资源
总结 可以建立的tcp连接总数和端口号资源,文件描述符资源,cpu资源,内存资源,线程资源有关,找到限制条件去修改 还有其他限制条件 比如监听队列大小之类的
|