生命不息
折腾不止

TCP优化配置–适用于SS,你懂的

该篇文章不支持 openvz 环境, bandwagonhost 为 openvz 环境,因此,若 vps 为 Openvz 的,就无需再往下看。

亲测,在安装锐速后,再进行一次 tcp 优化,还能增加下载效果。

增加 tcp 连接数量

编辑 limits.conf

vi /etc/security/limits.conf

增加以下两行

* soft nofile 51200
* hard nofile 51200

开启 shadowsocks 服务之前,先设置一下 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 参数

vi /etc/sysctl.conf

添加以下代码

fs.file-max = 51200# 提高整个系统的文件限制 
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 3240000
 
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
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
# 如果 linux 内核没到 3.10 ,这个 fastopen 请注释掉 
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla

5 、保存生效

sysctl -p

小结

经测试, digitalocean,ramnode 的 KVM 等内核支持 hybla 算法。但是 linode 的内核目前不支持

需要注意的是每次重启需要重新加载 hybla 算法模块,可以写入 rc.local 自动启动。

赞(0)
未经允许不得转载:91云(91yun.co) » TCP优化配置–适用于SS,你懂的

留言 11

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    fatopen不需要3.10吧,服务器3.7客户端3.6

    cwing4年前 (2017-06-12)回复
  2. #0

    你好,ipv6有什么加速方法吗?

    chadwick4年前 (2016-09-18)回复
  3. #0

    加拿大的vps,延迟高,网速慢!安装锐速有效果!这个TCP优化没效果,感觉还慢了一点点

    fat44年前 (2016-09-12)回复
  4. #0

    请问如果ss部署在docker中,是否docker和vps都需要做优化?

    asir64年前 (2016-09-02)回复
  5. #0

    站长你好,我使用的是vutlr日本的服务器,然后用了这个优化… 好吧,并不是高延迟高掉包的网络环境 好像反而速度下降了。用什么指令可以退回原来的cubic么?谢谢

    ss4年前 (2016-08-17)回复
  6. #0

    你好!!vultr的vps支持吗?

    ppctd5年前 (2016-06-05)回复
    • 和哪里的vps无关。

      91yun5年前 (2016-06-05)回复
  7. #0

    请问如果已安装锐速服务的 这一步的优化 还有必要做么?

    iwcwcc5年前 (2016-03-20)回复
    • 不同的机子不情况不同,我有些机子做了效果会增加,有些效果会降低。个人经验,如果是国外延迟高丢包多的会比较有优势,亚洲香港日本韩国之类的如果访问已经很快,可能反而速度会降低。

      91yun5年前 (2016-03-20)回复
      • 如果降低了 我还有办法复原么- – 本人linux大白。。 VPS上装一键ss服务端和锐速等 都靠GOOGLE出来的懒人教程- – 貌似可以优化在网上看见一个net-speed。。 好像原理是翻倍发包损人利己。。

        iwcwcc5年前 (2016-03-20)回复
        • 如果觉得效果不好,按步骤再把相应的配置删了就好了。不过如果锐速效果已经满意,就不用太折腾了。netspeed主要是openvz主机用,其实效果不理想

          91yun5年前 (2016-03-20)回复