亲测,在安装锐速后,再进行一次 tcp 优化,还能增加下载效果。
增加 tcp 连接数量
编辑 limits.conf
1 | vi /etc/security/limits.conf |
增加以下两行
1 | * soft nofile 51200 |
开启酸酸乳 服务之前,先设置一下 ulimit
1 | ulimit -n 51200 |
调整内核参数
首先科普下 TCP 拥塞控制算法: 中美之间的线路质量不是很好, rtt 较长且时常丢包。 TCP 的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使 TCP 传输速度大幅下降。 HTTP 协议在传输层使用的是 TCP 协议,所以网页下载的速度就取决于 TCP 单线程下载的速度(因为网页就是单线程下载的)。丢包使得 TCP 传输速度大幅下降的主要原因是丢包重传机制,控制这一机制的就是 TCP 拥塞控制算法。
Linux 内核中提供了若干套 TCP 拥塞控制算法,这些算法各自适用于不同的环境。 1 ) reno 是最基本的拥塞控制算法,也是 TCP 协议的实验原型。 2 ) bic 适用于 rtt 较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是 2.6.8 到 2.6.18 之间的 Linux 内核的默认算法。 3 ) cubic 是修改版的 bic ,适用环境比 bic 广泛一点,它是 2.6.19 之后的 linux 内核的默认算法。 4 ) hybla 适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
我们需要做的工作就是将 TCP 拥塞控制算法改为 hybla 算法,并且优化 TCP 参数。
1 、查看可用的算法。 主要看内核是否支持 hybla ,如果没有,只能用 cubic 了。
1 | sysctl net.ipv4.tcp_available_congestion_control |
2 、如果没有该算法,则加载 hybla 算法(不支持 OpenVZ )
1 | /sbin/modprobe tcp_hybla |
3 、首先做好备份工作,把 sysctl.conf 备份到 root 目录
1 | cp /etc/sysctl.conf /root/ |
4 、修改 sysctl.conf 配置文件,优化 TCP 参数
1 | vi /etc/sysctl.conf |
添加以下代码
1 | fs.file-max = 51200 |
5 、保存生效
1 | sysctl -p |
小结
经测试, digitalocean,ramnode 的 KVM 等内核支持 hybla 算法。但是 linode 的内核目前不支持
需要注意的是每次重启需要重新加载 hybla 算法模块,可以写入 rc.local 自动启动。