Linux VPS使用 hybla TCP拥塞控制算法

一、加载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

二、修改/etc/sysctl.conf
将下述内容添加入sysctl.conf文件:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 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 /etc/sysconfig/modules/hybla.modules