GOOGLE BBR2 BBRV2 [已更新5.4.0RC6]内核编译及安装
什么是BBR
网上的一键脚本不支持CentOS,所自己只能自己编译了,编译至少需要预留10G硬盘空间,本教程已在Viramch、CentOS7测试成功。
一、编译BBR2
1、安装编译相关的工具
1 2 | yum groups install development -y yum install gcc bc ncurses-devel openssl-devel elfutils-libelf-devel -y |
2、获取源代码
1 | git clone -o google-bbr -b v2alpha https://github.com/google/bbr.git |
3、进入源代码文件夹、打开编译选项菜单
1 | cd bbr && make menuconfig |
4、按 / (斜杠)键在搜索框输入 bbr2 回车
5、按 数字键 2 进入 TCP_CONG_BBR2 配置页面,(图中显示是50%,按键盘下键到100%按数字2键就显示了。)
6、按 空格键 启用 bbr2 内核模块,然后按 Save 保存到 .config 文件中(按Tab键切换)。
7、查看保存的配置文件中BBR配置项是否为m(CONFIG_TCP_CONG_BBR2=m)
1 | grep -i bbr2 .config |
8、禁用签名和调试
1 2 | scripts/config --disable MODULE_SIG scripts/config --disable DEBUG_INFO |
PS:因编译时间较长,建议安装Screen,在Screen模式下编译。
1 2 | yum -y install screen screen -S bbr2 |
9、编译内核并打包成rpm安装包(漫长的等待………)
1 | time make rpm-pkg |
10、查看生成的rpm安装包,默认在root目录下
二、安装内核
1 | rpm -Uvh kernel-5.4.0_rc6-1.x86_64.rpm |
2、查看Grub2菜单
1 | awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg |
3、选择默认引导项
1 | grub2-set-default 0 |
4、启用BBR2,配置完成然后重启服务器。
1 2 3 4 5 6 7 8 9 | sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr2" >> /etc/sysctl.conf #ECN 是 BBRv2 新引入的 TCP 标记,用来区分 随机丢包 或 重新排序 的拥塞信号 # 启用ECN(不想启用就不要执行这一个,启用之后会现不可预知的事情。) sed -i '/net.ipv4.tcp_ecn/d' /etc/sysctl.conf echo "net.ipv4.tcp_ecn=1" >> /etc/sysctl.conf |
5、确认 BBRv2 是否启用
1 2 | sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control |
教程到此结束,以下是强迫症操作,删除多余启动项。
1、查询当前使用的系统
1 | uname -a |
2、查看内核系统中安装的内核
1 | rpm -qa | grep kernel |
yum remove 你要删除的内核 #把老版本的内核remove,千万不要把正在使用的内核删掉。
3、重新编译引导,然后重启。
1 | grub2-mkconfig -o /boot/grub2/grub.cfg |
本文部分内容来自:
1 | http://blog.exsvc.cn/article/centos-bbr2-alpha-build-install.html |