/etc/sysctl.conf 是一个允许改变正在运行中的Linux系统的接口,包含TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。
- file-max:进程可以同时打开的最大句柄数,该参数直接限制最大并发连接数。
- tcp_tw_reuse:参数为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。
- tcp_keepalive_time:当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,表示如果某个TCP连接在idle2小时后,内核才发起probe;若将其设置得小一点,可以更快地清理无效的连接。
- tcp_fin_timeout:当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
- tcp_max_tw_buckets:操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息;默认是i180000,过多TIME_WAIT套接字会使Web服务器变慢。
- tcp_max_syn_backlog:表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024;将其设置大一点,当出现Nginx繁忙来不及accept新连接时,Linux不至于丢失客户端发起的连接请求。
- ip_local_port_range:在UDP和TCP连接中本地端口的取值范围。
- net.ipv4.tcp_rmem:TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。
- net.ipv4.tcp_wmem:TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。
- netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
- rmem_default:内核套接字接收缓存区默认值。
- wmem_default:内核套接字发送缓存区默认值。
- rmem_max:内核套接字接收缓存区默认的最大值。
- wmem_max:内核套接字发送缓存区默认的最大值。
修改完成后记得sysctl -p生效配置