手動編譯 TCP BBR v2 Alpha/Preview 內核



相信小伙伴們對 Google 的 TCP BBR 擁塞控制算法都不陌生。dog250大佬曾經提出過TCP BBR存在的一些問題並提供了修正后的代碼,於是有了BBRplus。Google也並非不知道初代BBR存在的問題,如今BBR v2 Alpha/Preview 已經發布了。

如果想體驗BBR v2,可以直接下已經載編譯完成的內核或者用一鍵腳本進行更換。雖然萌櫻不能明確告訴小伙伴們 BBRplus 跟 BBR v2 哪個加速效果更好,但筆者推薦用 Google 官方的 BBR v2 。小伙伴們可以自行體驗,畢竟同一套算法在不同的網絡環境中也會存在很大差異。

GitHub:https://github.com/google/bbr/tree/v2alpha

TCP BBR v2 alpha 源碼:tcp_bbr2.c

安裝編譯環境

1 apt install -y build-essential libncurses5-dev git screen
2 apt -y build-dep linux

編譯內核

1 git clone -o google-bbr -b v2alpha  https://github.com/google/bbr.git
2 cd bbr
3 make menuconfig
4
5 # 禁用簽名調試
6 scripts/config --disable MODULE_SIG
7 scripts/config --disable DEBUG_INFO

進入Networking support ---> Networking options ---> TCP: advanced congestion control --->,選中BBR2 TCP按空格標上M,其他默認,然后保存退出。

開始編譯

1 screen -S kernel
2 make -jN deb-pkg  # N 為線程數

Ctrl + A再按D后台編譯

編譯需要很長的時間,編譯完成后/root下生成以下文件

1 linux-headers-5.2.0-rc3+_5.2.0-rc3+-1_amd64.deb
2 linux-image-5.2.0-rc3+_5.2.0-rc3+-1_amd64.deb

更換內核

1 cd /root
2 
3 # 安裝 BBR v2alpha 內核
4 dpkg -i linux-headers-5.2.0-rc3+_5.2.0-rc3+-1_amd64.deb
5 dpkg -i linux-image-5.2.0-rc3+_5.2.0-rc3+-1_amd64.deb
6 dpkg -l|grep linux-headers   | awk '{print $2}'
7 dpkg -l|grep linux-image   | awk '{print $2}'
8 
9 # 刪除原版內核
10 apt purge -y "linux-image-4.9.0-9-amd64"
11 update-grub
12 reboot

開啟 BBR v2

輸入以下命令開啟 BBR v2

1 echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
2 echo "net.ipv4.tcp_congestion_control = bbr2" >> /etc/sysctl.conf
3 sysctl -p

輸入以下命令開啟 ECN

1 echo "net.ipv4.tcp_ecn = 1" >> /etc/sysctl.conf
2 echo "net.ipv4.tcp_ecn_fallback = 1" >> /etc/sysctl.conf
3 sysctl -p

查看是否開啟 BBR v2

1 sysctl net.ipv4.tcp_available_congestion_control

顯示以下即已開啟 BBR v2

1 # sysctl net.ipv4.tcp_available_congestion_control
2 net.ipv4.tcp_available_congestion_control = reno cubic bbr2

查看 BBR v2 是否生效

1 lsmod | grep bbr

顯示以下即 BBR v2 已生效

1 # lsmod | grep bbr
2 tcp_bbr2               40960  1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM