亲测,在安装锐速后,再进行一次 tcp 优化,还能增加下载效果。
增加 tcp 连接数量
编辑 limits.conf
vi /etc/security/limits.conf
增加以下两行
* soft nofile 51200
* hard nofile 51200
开启酸酸乳 服务之前,先设置一下 ulimit
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 了。
sysctl net.ipv4.tcp_available_congestion_control
2 、如果没有该算法,则加载 hybla 算法(不支持 OpenVZ )
/sbin/modprobe tcp_hybla
3 、首先做好备份工作,把 sysctl.conf 备份到 root 目录
cp /etc/sysctl.conf /root/
4 、修改 sysctl.conf 配置文件,优化 TCP 参数
添加以下代码
5 、保存生效
小结
经测试, digitalocean,ramnode 的 KVM 等内核支持 hybla 算法。但是 linode 的内核目前不支持
需要注意的是每次重启需要重新加载 hybla 算法模块,可以写入 rc.local 自动启动。