1、服务优化
如非必须,关闭iptables,并注意不要加载相关模块,包括nf_conntrack等模块。
2、文件描述符
- fs.file-max:决定了系统打开的最大文件数。
- 单用户打开文件数:修改/etc/security/limit.conf,添加
vim /etc/security/limit.conf user soft nofile 10240 user hard nofile 10240
- fs.nr_open:单进程所能打开的最大文件数。
- 修改systemd service 的最大文件数(PS:服务进程最大文件描述符数量取nr_open和DefaultLimitNOFILE较小的那个):
vim /etc/systemd/system.conf #打开最大文件数量 DefaultLimitNOFILE=105960 #打开最大进程数量 DefaultLimitNPROC=10240000
3、网络协议相关
- net.ipv4.tcp_tw_recycle:启用TIME_WAIT状态的socket的快速回收。当开启了tcp_tw_recycle选项后,当连接进入TIME_WAIT状态后,会记录对应远端主机最后到达分节的时间戳。如果同样的主机有新的分节到达,且时间戳小于之前记录的时间戳,即视为无效,相应的数据包会被丢弃。依赖于net.ipv4.tcp_timestamps参数(默认开启)。此参数一般不建议开启,且已经在4.x内核废弃,因为在NAT环境下,很有可能会产生同样的主机但是时间戳小于记录的时间戳的问题,从而导致新的连接被拒。
- net.ipv4.tcp_tw_reuse:开启重用,允许将TIME_WAIT状态的socket重新用于tcp连接,只在 linux机器作为客户端调用connect函数时有效。也依赖于net.ipv4.tcp_timestamps参数
- net.ipv4.tcp_fin_timeout:设置主动断连断FIN_WAIT2默认等待的时间,默认为60s。当socket连接进入FIN_WAIT2状态后,没有收到对端的FIN包超过 tcp_fin_timeout 时间,则会主动关闭连接。
- net.ipv4.tcp_keepalive_time:当keepalive启用时,检测keepalive状态的时间间隔,默认为7200秒。减小配置可以加快释放无用连接。
- net.ipv4.ip_local_port_range:指定发起连接时,本地端口范围。不能小于 net.ipv4.ip_unprivileged_port_start。