什么是BBR

TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google设计,于2016年发布的拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR则基于模型主动探测。该算法使用网络最近出站数据分组当时的最大带宽和往返时间来创建网络的显式模型。数据包传输的每个累积或选择性确认用于生成记录在数据包传输过程和确认返回期间的时间内所传送数据量的采样率。该算法认为随着网络接口控制器逐渐进入千兆速度时,分组丢失不应该被认为是识别拥塞的主要决定因素,所以基于模型的拥塞控制算法能有更高的吞吐量和更低的延迟,可以用BBR来替代其他流行的拥塞算法,例如CUBIC。Google在YouTube上应用该算法,将全球平均的YouTube网络吞吐量提高了4%,在一些国家超过了14%。

什么是BBR2

BBR2 是 BBR 的新版本,当前为 alpha 版。

CentOS下如何编译BBR2内核

# 安装编译相关的工具
yum groups install development -y
yum install gcc bc ncurses-devel openssl-devel elfutils-libelf-devel -y

# 获取源代码
git clone -o google-bbr -b v2alpha  https://github.com/google/bbr.git

# 进入源代码文件夹
cd bbr

# 打开编译选项菜单
make menuconfig

# 编译选项菜单 (图1)
# 按 / 键在搜索框输入 bbr2 回车 (图2)
# 根据查询结果(图3),按 数字键 2 进入 TCP_CONG_BBR2 配置页面 (图4)
# 按 空格键 启用 bbr2 内核模块 (图4)
# 按 Save 保存到 .config 文件中 (图5)

# 查看保存的配置文件中BBR配置项是否为m (CONFIG_TCP_CONG_BBR2=m)
grep -i bbr2 .config

# 禁用调试
scripts/config --disable DEBUG_INFO

# 编译内核并打包成rpm安装包
time make rpm-pkg

# 查看生成的rpm安装包
ls ../rpmbuild/RPMS/x86_64/
CentOS BBR2 测试版内核编译及安装
图1
CentOS BBR2 测试版内核编译及安装
图2
CentOS BBR2 测试版内核编译及安装
图3
CentOS BBR2 测试版内核编译及安装
图4
CentOS BBR2 测试版内核编译及安装
图5

如何安装内核

# 安装内核
yum install -y kernel-5.4.0_rc6-1.x86_64.rpm

# 查看Grub2菜单
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

# 选择默认引导项
grub2-set-default 0

# 启用BBR2
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
sed -i '/net.ipv4.tcp_ecn/d' /etc/sysctl.conf
echo "net.ipv4.tcp_ecn=1" >> /etc/sysctl.conf

# 重启
reboot


原文链接地址:http://blog.exsvc.cn/article/centos-bbr2-alpha-build-install.html
转载请注明:转载自 易科博客 ,谢谢!

发表评论

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