Digitalocean VPS开启TCP BBR

2016-12-29(Thu) by chenjia.me

随着TCP BBR 被加入到Linux Kernel 4.9中,网络上掀起了一大波对BBR的讨论,由于其对大陆网络不好地区有特殊加速buff,所以就在自己的DD vps上做了测试,效果还是很可观的。

确定自己的主机类型

登录Digitalocean的控制台,查看自己的VPS的kernel标签,如果可以直接更换,Kernel那么直接跟随教程替换kernel然后在这里进行选择,如果是显示NotKernel 那么你就需要根据教程来手动替换内核。

下载安装Linux kernel 4.9

首先先确定自己系统类型,是什么架构的VPS,如果是OpenVZ的就可以放弃了,其他的都没什么问题。

首先先下载内核DEB文件:Ubuntu内核,从中下载对应的内核文件,然后使用dpkg命令进行安装

cd ~
mkdir kernel4.9
cd kernel4.9
wget xxxxx.deb
sudo dpkg -i xxxx.deb

更换启动内核

如果是控制台可以更换的就直接在控制台进行选择,如果不可直接更换,可以参考官方换核教程How to update a digitalocean server‘s kernel

摘录关键步骤:

  • sudo vim /etc/default/grub 添加或修改对应行

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    GRUB_DISABLE_SUBMENU=y
    
  • sudo vim /etc/default/grub.d/50-cloudimg-settings.cfg如果存在该文件就注释其中的GRUB_DEFAULT=0

  • 更新GRUB

    export GRUB_CONFIG=`sudo find /boot -name "grub.cfg"`
    sudo update-grub
    
  • 查看当前已经安装内核:grep 'menuentry ' $GRUB_CONFIG | cut -f 2 -d "'" | nl -v 0,记住4.9内核的普通模式的序号

  • sudo grub-set-default 2 将2替换为你对应的序号,进行更新
  • sudo reboot重启机器
  • uname -a检查是否成功使用4.9内核
  • 开启bbr功能:

    sysctl net.core.default_qdisc=fq
    sysctl net.ipv4.tcp_congestion_control=bbr
    
  • 检查是否开启成功

    uname -r
    # 查看内核版本,含有 4.9.0 就表示 OK 了
    # ————————————
    sysctl net.ipv4.tcp_available_congestion_control
    # 返回值一般为:
    # net.ipv4.tcp_available_congestion_control = bbr cubic reno
    # ————————————
    sysctl net.ipv4.tcp_congestion_control
    # 返回值一般为:
    # net.ipv4.tcp_congestion_control = bbr
    # ————————————
    sysctl net.core.default_qdisc
    # 返回值一般为:
    # net.core.default_qdisc = fq
    # ————————————
    lsmod | grep bbr
    # 返回值有 tcp_bbr 模块即说明bbr已启动。
    

Enjoy

参考:

1

2


Comments