树莓派启用BBR拥塞控制算法

下面的文字已经不具有时效性,Raspbian当前内核版本已经大于4.9,无需手动编译即可开启BBR

BBR不用多介绍了吧,十二月份最火的名词之一。Linux 4.9内核版本正式启用了这个功能,其拥有在高延迟网络下不菲的性能,知乎上的大牛已经详细的评测了这一特性传送门,不过raspbian官方只是将其作为一个实验性特征,开始并没有加入rpi-4.9分支,不过在众多树莓派爱好者的邀请下,raspbian开发人员于三天前正式加入了这个功能。

编译

之前详细写过一篇树莓派编译内核的文章升级传送门,想升级内核的同学可以看一下,注意一下我用的是树莓派3代,树莓派1代升级操作略有差别,使用树莓派1代的同学请看相关的官方文档,由于树莓派性能有限,采用交叉编译能节省一定时间。宿主机的配置如下

1
2
3
git clone -b rpi-4.9.y --depth=1 https://github.com/raspberrypi/linux
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

git clone较慢的话建议使用梯子,多核处理器make-j参数开启多线程编译,E3 1235开了8个线程之后大约15分钟编译完。

编译后的文件我已经打包好了,不想编译的同学可以直接使用,注意复制和移动时相对目录的正确性,替换boot分区的kernel7.imgdts/*,还有将4.9.4-v7+内核模块移动至/lib/modules/。重要的事情说三遍,升级之前注意备份boot分区,升级之前注意备份boot分区,升级之前注意备份boot分区。

1
wget https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/have_complined_rasp_software/bbr.tgz

安装

把编译好的内核镜像,模块以及启动文件都移动到树莓派上。然后进行重启

screenfetch工具查看内核版本是否升级成功

6.png

启用bbr
1
sudo sysctl net.ipv4.tcp_congestion_control=bbr

查看bbr模块是否加载

1
lsmod | grep bbr

一个不靠谱的测试

简单的测试了一下bbr的性能,在严重干扰的wifi网络下进行100M文件传输,传输方式为sftp

拥塞控制为cubic的速度

拥塞控制为bbr的速度

虽然这个测试不严谨,截图也只是个人估计出的平均速度。评测终归评测,真正的性能提升还得实际体验来证明。

附带一份github上网友实测记录

144P到1080P的提升已经相当惊艳了

分享到: