💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 1. 进程限制 ```bash ulimit -n # 默认为1024,即只能一个进程只能打开1024个文件描述符,也就是只能维持1024个tcp连接 # 临时修改ulimit ulimit -n 100000 # 永久修改ulimit vi /etc/profile ulimit -n 1000000 # 添加 # 或者编辑/etc/security/limits.conf,加入下面后重启 * soft nofile 1000000 * hard nofile 1000000 root soft nofile 1000000 root hard nofile 1000000 * soft core unlimited * hard core unlimited root soft core unlimited root hard core unlimited ``` ### 2. 全局限制 #### 2.1 查看文件句柄分配 ```bash cat /proc/sys/fs/file-nr ``` 改命令会返回3个值,分别为已经分配的文件句柄数,已经分配但没有使用的文件句柄数,最大文件句柄数 #### 2.2 内核参数 每一个配置对应一个文件,例如net.ipv4.tcp_mem对应着/proc/sys/net/ipv4/tcp_mem文件 修改配置方式有3种: - sysctl -w key=value 临时修改 - echo value > /proc/sys/key 临时修改,直接修改对应文件的值 - 用root权限直接修改/etc/sysctl.conf文件,保存后需要sysctl -p加载新配置 常用的配置参数如下: ```bash # 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; net.ipv4.tcp_syncookies = 1 # 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数 net.ipv4.tcp_max_syn_backlog = 81920 # 3次握手中服务端响应SYN+ACK的次数,如果超过这个次数,服务端会放弃这个连接 net.ipv4.tcp_synack_retries=3 # 3次握手中客户端发送syn的次数,如果超过这个次数,客户端会放弃这个连接 net.ipv4.tcp_syn_retries=3 # 本端断开连接,tcp保持在FIN-WAIT-2状态的时间 net.ipv4.tcp_fin_timeout = 30 # 如果某个TCP连接在空闲1800秒后,内核才发起探针.如果探测9次(每次3秒)不成功,内核才彻底放弃,认为该连接已失效 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 3 # 是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接 net.ipv4.tcp_tw_reuse = 1 # 可以用于快速减少在TIME-WAIT状态TCP连接数,慎开启 net.ipv4.tcp_tw_recycle = 1 # 用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。 net.ipv4.ip_local_port_range = 20000 65000 # 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息 net.ipv4.tcp_max_tw_buckets = 200000 # 可参考的优化值是:786432 1048576 1572864 net.ipv4.tcp_mem = 379008 505344 758016 # TCP写buffer,可参考的优化值:32768 436600 873200 net.ipv4.tcp_wmem = 32768 436600 873200 # TCP读buffer,可参考的优化值:32768 436600 873200 net.ipv4.tcp_rmem = 32768 436600 873200 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 # 最大socket读buffer,可参考的优化值:873200 net.core.rmem_max = 873200 # 最大socket写buffer,可参考的优化值:873200 net.core.wmem_max = 873200 ``` ### 3. 端口限制 > 操作系统1024以下端口为保留端口,从1024~65535为用户使用; 一个tcp连接由四部分组成,包括本机ip,本机port,远程ip,远程port;所以说并不是一个连接占一个端口,有65535个端口就只能并发65535个连接;例如,如果是服务端的话,理论上可以创建(远程ip * 远程port)个连接,如果是客户端模拟并发请求某个服务的话,理论上最多只能并发65535个请求