2022-07-29 07:55:47 +03:00
|
|
|
|
[English](bbr.md) | [中文](bbr-zh.md)
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
2022-07-29 07:55:47 +03:00
|
|
|
|
# 高级用法:部署 Google BBR 拥塞控制算法
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
2022-02-10 07:18:12 +03:00
|
|
|
|
Google BBR是一种拥塞控制算法,它能够显著提升服务器吞吐率并降低延迟。
|
|
|
|
|
|
|
|
|
|
Google BBR已经被内置于Linux内核4.9及更高版本中,但是需要手动开启。
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
|
|
|
|
关于Google BBR算法,可以在这篇[官方博客](https://cloud.google.com/blog/products/networking/tcp-bbr-congestion-control-comes-to-gcp-your-internet-just-got-faster)或者这个[官方库](https://github.com/google/bbr)中找到更多信息。
|
|
|
|
|
|
|
|
|
|
## 准备
|
|
|
|
|
|
2022-02-10 07:18:12 +03:00
|
|
|
|
可以通过命令 `uname -r` 来查看当前Linux内核版本。版本大于等于4.9时,可以直接参照[下方的说明](#部署-google-bbr)部署BBR。
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
2024-07-29 00:45:47 +03:00
|
|
|
|
通常而言,Ubuntu 18.04+, Debian 10+,CentOS 8+及RHEL 8+的内核版本都大于4.9。但是对于Amazon Linux 2,需要通过以下的方式更新内核之后才能部署Google BBR。
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
|
|
|
|
### Amazon Linux 2
|
|
|
|
|
|
2022-02-10 07:18:12 +03:00
|
|
|
|
Amazon Linux 2提供过经过验证的新版Linux内核,并可以通过启用预置的Extras库安装。
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
2022-02-10 07:26:02 +03:00
|
|
|
|
1. 从Extras库安装 `kernel-ng`
|
2022-02-04 08:10:25 +03:00
|
|
|
|
```bash
|
|
|
|
|
sudo amazon-linux-extras install kernel-ng
|
|
|
|
|
```
|
|
|
|
|
2. 更新包
|
|
|
|
|
```bash
|
|
|
|
|
sudo yum update
|
|
|
|
|
```
|
|
|
|
|
3. 重启系统
|
|
|
|
|
```bash
|
|
|
|
|
sudo reboot
|
|
|
|
|
```
|
2022-02-10 07:18:12 +03:00
|
|
|
|
4. 检查Linux内核版本
|
2022-02-04 08:10:25 +03:00
|
|
|
|
```bash
|
|
|
|
|
uname -r
|
|
|
|
|
```
|
|
|
|
|
|
2022-02-10 07:18:12 +03:00
|
|
|
|
## 部署 Google BBR
|
2022-02-04 08:10:25 +03:00
|
|
|
|
|
|
|
|
|
在这个部分,我们将通过修改配置文件启动Google BBR。
|
|
|
|
|
|
|
|
|
|
1. 备份 `/etc/sysctl.conf`
|
|
|
|
|
```bash
|
|
|
|
|
sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup
|
|
|
|
|
```
|
2022-02-10 07:18:12 +03:00
|
|
|
|
2. 修改 `/etc/sysctl.conf`
|
2022-02-04 08:10:25 +03:00
|
|
|
|
```bash
|
|
|
|
|
sudo vim /etc/sysctl.conf
|
|
|
|
|
```
|
|
|
|
|
在文件中增加以下行
|
|
|
|
|
```
|
|
|
|
|
net.core.default_qdisc = fq
|
|
|
|
|
net.ipv4.tcp_congestion_control = bbr
|
|
|
|
|
```
|
2022-09-08 17:06:16 +03:00
|
|
|
|
3. 启用Google BBR
|
|
|
|
|
首先使用 `uname -r` 检查你的服务器的内核版本。
|
|
|
|
|
对于内核版本 >= 4.20,应用 `sysctl` 设置:
|
2022-02-04 08:10:25 +03:00
|
|
|
|
```bash
|
|
|
|
|
sudo sysctl -p
|
|
|
|
|
```
|
2022-09-08 17:06:16 +03:00
|
|
|
|
对于内核版本 < 4.20,你必须重启服务器:
|
|
|
|
|
```bash
|
|
|
|
|
sudo reboot
|
|
|
|
|
```
|
2022-02-04 08:10:25 +03:00
|
|
|
|
4. 检查Google BBR状态
|
|
|
|
|
```bash
|
|
|
|
|
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
|
2022-02-10 07:18:12 +03:00
|
|
|
|
```
|
|
|
|
|
|
2022-02-13 19:38:49 +03:00
|
|
|
|
## 文档作者
|
2022-02-10 07:18:12 +03:00
|
|
|
|
|
|
|
|
|
版权所有 (C) 2022 [Leo Liu](https://github.com/optimusleobear)
|