VPS连接数方面的优化,tcp连接优化

各种原因,vps到自己的线路直接延迟高、丢包率高等,这些就需要来优化一下vps的连接了。

下面的方式,前半部分可以在OpneVZ下有效,后半部分就无法在OpenVZ下使用了。

增加tcp连接数量


编辑limits.conf

在结尾增加一下两行

在开启pptpd、xl2tpd等服务之前,先设置一下ulimit,可以加到启动脚本里面,但是要在必要的网络服务之前运行;


调整内核参数


首先科普下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了。

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

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

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

新建 /etc/sysctl.d/local.conf 这个文件并添加下面的内容(适用于Debian):

然后运行:

注意:不要开启 net.ipv4.tcp_tw_recycle!!!


优化后对比



优化后,一个繁忙的处理很多连接数的 Shadowsocks 服务器,会占用大约 30MB 的内存以及 10% 的 CPU。要注意的是同时,Linux 内核使用了 >100MB 内存来存储这些连接的缓存。用了上面提供的 sysctl 设置后,你是在用内存空间换取速度。如果你想用更少内存的话,减少 rmem 以及 wmem。


优化前&优化后:


您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注