一、加载tcp_hybla模块
首先,OpenVZ的VPS可以不用继续了。对内核的操作权限太低,没法添加相关模块。建议使用KVM。
加载tcp_hybla模块(OpenVZ在这一步就会报错):
#/sbin/modprobe tcp_hybla
然后查看是否已经正常加载:
#lsmod |grep hybla
如果你的内核版本较新,比如CentOS 6.x的2.6.32,则可以用下列命令查看当前可用的拥堵算法,里面应该有hybla了:
#sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = hybla cubic reno
二、修改/etc/sysctl.conf
将下述内容添加入sysctl.conf文件:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_congestion_control=hybla
保存后,可以用下面命令让设置立即生效:
sysctl -p
三、设置开机后自动加载tcp_hybla模块
刚才第一步里加载的模块只是暂时的,开机后还得重新加载。怎样自动加载呢?
以CentOS为例,在/etc/sysconfig/modules目录下添加一个hybla.modules文件,并且写入以下内容:
#!/bin/sh
/sbin/modprobe tcp_hybla
然后设置下可执行属性,以便于系统在开机时自动执行:
chmod +x hybla.modules
慎用net.ipv4.tcp_tw_recycle,可能会造成NAT下一分钟里只有一台设备能连上服务器的现象。如果你只是自用,应该没什么关系
快速回收不应该被打开。特别是个人的网络。另外其实很多参数对付的是高流量的问题。没有太大意义。拥塞算法可能是最重要的一个。