在Linode上应用BBR算法

2017-3-13更新


评论中有反馈说直接使用linode提供的4.9.7也能成功开启,但是lsmod命令并不显示加载了tcp_bbr。刚好我也有个朋友做了相关的测试:

我测试了下,lsmod |grep bbr确实没有输出。但是,根据wget测速,BBR应该是生效了的,这是测试结果:

开启BBR:

关闭BBR:

清空/etc/sysctl.conf时的下载速度过慢以至于无法完成下载,只能截屏即时速度。

所以这就很奇怪了,lsmod |grep bbr的输出与否与BBR开启是否有关系?

所以,结论是,使用Linode提供的4.9.7内核可以开启bbr,但是lsmod并不会显示Module。

在网上查了一下,有一种说法是:

Linode自带的内核都是把模块都编译一块的,所以lsmod里看不到正常,lsmod是看额外加载的模块的。

我认为可能答案就是这样了。

以下是原文


在之前的文章使用BBR算法加速shadowsocks中描述了如何在已经配置好内核的机器上启用TCP BBR。但是在实际应用到Linode的VPS时出现了问题,最后一步执行

时,并没有找到tcp_bbr服务,也就是说,服务启动失败。寻找原因之后发现,应该是我直接使用了Linode提供的4.9.7内核,而这个内核并不支持BBR。所以,还是需要手动更换内核。

首先,wget最新的Linux内核(Ubuntu 4.9.x Kernel)

安装内核

安装grub2引导

修改grub文件

将文件内的字段中与下面不同的进行替换和增加

更新grub

显示在最顶端的kernel就是即将启动的kernel。如果没显示在最顶端,就把其余的kernel删掉(一般都在最顶端):

然后进入linode的dashboard,点击edit:

选择Grub2引导方式,点击保存

保存后,重启主机。此时查看系统内核,应该已经变成4.9了

此时,再按照前篇文章所说,执行

确认bbr已经配置成功后,监测是否运行

出现以上tcp_bbr服务信息即已成功。

3 条评论

  • cc 2017-03-12 回复

    哈哈,搜索bbr看到这个,不过据我测试Linode的4.9.7应该是支持bbr的,net.ipv4.tcp_available_congestion_control这个里面有bbr。开启之后速度飞跃,所以应该是开启成功了。

    • Henry 2017-03-12 回复 作者

      执行lsmod看看是否里头有tcp_ bbr,如果有就是成功了

    • Henry 2017-05-12 回复

      确实你说的是正确的,虽然lsmod里没有bbr,但是确实是开启成功了。已更新文章。

发表评论

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