63133e1de4
* Manual for enabling BBR in zh-cn * Update docs linked to bbr manual
3.1 KiB
3.1 KiB
Google BBR
Google BBR是一种由Google开发的拥塞控制算法,它能够显著提升服务器吞吐率并降低延迟。
Google BBR已经被内置于Linux Kernel 4.9及更高版本中,但是需要手动开启。
关于Google BBR算法,可以在这篇官方博客或者这个官方库中找到更多信息。
准备
可以通过命令 uname -r
来查看当前Linux Kernel版本。版本大于等于4.9时,可以直接参照下方的说明部署BBR。
通常而言,Ubuntu 18.04+, Debian 10+,CentOS 8+及RHEL 8+的内核版本都大于4.9。但是对于CentOS 7或者Amazon Linux 2,需要通过以下的方式更新内核之后才能部署Google BBR。
Amazon Linux 2
Amazon Linux 2提供过经过验证的新版Linux Kernel,并可以通过启用预置的Extras库安装。
- 启用
kernel-ng
Extras 库sudo amazon-linux-extras install kernel-ng
- 更新包
sudo yum update
- 重启系统
sudo reboot
- 检查Linux Kernel版本
uname -r
CentOS 7
当使用CentOS 7时,需要安装由ELRepo Project提供的新版Linux Kernel。可以在这个页面找到有关ELRepo Project提供的Linux Kernel的更多信息。
以下的安装说明,因为缺少可供参考的中文文档,暂仅提供英文版。
- Import ELRepo Project's public key.
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- Install ELRepo for RHEL-7, SL-7 or CentOS-7.
sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
- Install
kernel-ml
.sudo yum --enablerepo=elrepo-kernel install kernel-ml
- Confirm the result.
You should seerpm -qa | grep kernel
kernel-ml-xxx
in output. - Show all entries in the grub2 menu and setup
kernel-ml
.
Indexing starts atsudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
0
. For example, when thekernel-ml
is located at1
, use the command below to activatekernel-ml
.sudo grub2-set-default 1
- Reboot.
sudo reboot
- Check Linux kernel version.
uname -r
部署Google BBR
在这个部分,我们将通过修改配置文件启动Google BBR。
- 备份
/etc/sysctl.conf
sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup
- 修改
/etc/sysctl.conf
在文件中增加以下行sudo vim /etc/sysctl.conf
net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr
- 启用Google BBR
sudo sysctl -p
- 检查Google BBR状态
sudo sysctl net.ipv4.tcp_available_congestion_control # net.ipv4.tcp_available_congestion_control = reno cubic bbr sudo sysctl -n net.ipv4.tcp_congestion_control # bbr lsmod | grep bbr # tcp_bbr 16384 0