一、背景:
下面是如何关闭 tcp_tw_recycle 并配置 tcp_max_tw_buckets 的步骤。
二、临时关闭
sudo sysctl -w net.ipv4.tcp_tw_recycle=0
三、永久关闭
1. 编辑 /etc/sysctl.conf 文件,添加或修改以下行:
net.ipv4.tcp_tw_recycle = 0
2. 然后使配置生效:
sudo sysctl -p
四、配置 tcp_max_tw_buckets
tcp_max_tw_buckets 参数用于设置 TIME-WAIT 状态的连接桶的数量。增加这个值可以帮助系统更好地处理大量 TIME-WAIT 状态的连接。
五、临时配置
sudo sysctl -w net.ipv4.tcp_max_tw_buckets=4096
六、永久配置
1. 编辑/etc/sysctl.conf 文件,添加或修改以下行:
net.ipv4.tcp_max_tw_buckets = 4096
2. 然后使配置生效:
sudo sysctl -p
七、其他相关优化
除了上述两个参数外,还有一些其他的内核参数可以帮助优化 TCP 连接处理:
八、增加文件描述符限制
sudo sysctl -w fs.file-max=100000
九、增加系统可打开的文件数
编辑 /etc/security/limits.conf 文件,添加或修改以下行:
* soft nofile 65535* hard nofile 65535
十、增加系统可建立的最大连接数
sudo sysctl -w net.core.somaxconn=65535
十一、增加半连接队列长度
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535
十二、减少 TIME-WAIT 状态的超时时间
sudo sysctl -w net.ipv4.tcp_fin_timeout=15
十三、验证配置
你可以使用以下命令来验证配置是否生效:
sysctl -a | grep tcp_twsysctl -a | grep file-maxsysctl -a | grep somaxconnsysctl -a | grep tcp_max_syn_backlogsysctl -a | grep tcp_fin_timeout
十四、重启服务
如果你正在优化的是某个特定的服务(如 Web 服务器、数据库等),建议重启该服务以确保新的内核参数生效。