hybla拥塞算法优化服务器TCP

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参数。

配置hybla拥塞控制算法

1、查看可用的算法: 主要看内核是否支持hybla,如果没有,只能用cubic了。

2、如果没有该算法,则加载hybla算法(不支持OpenVZ):

3、首先做好备份工作,把sysctl.conf备份到root目录

4、修改sysctl.conf配置文件,优化TCP参数

添加以下代码

5、保存生效

增加tcp连接数量

编辑limits.conf

增加以下两行

开启shadowsocks服务之前,先设置一下ulimit

 

需要注意的是每次重启需要重新加载hybla算法模块。

After restart digitalocean:

使用感受:感觉优化加速效果根本不输锐速,甚至在一些时段的体验优于锐速。缺点是仍然不支持OpenVZ,本测试在DO上通过,仅支持KVM内核。

发布者

Javen

一個喜歡折騰的自由散漫又帶有幽默感的處女座完美型浪漫主義豪放派人士。

发表评论

电子邮件地址不会被公开。 必填项已用*标注