CentOS 7 / 8 开启Google BBR加速 让你的VPS更快

By | July 16, 2021

BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。

BBR解决了两个问题:

再有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。

降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。

项目地址:https://github.com/google/bbr

开启 BBR 要求 4.10 以上版本 Linux 内核

升级内核:

[cc lang=”text”]uname -r  #如果低于4.10,则进行以下步骤

sudo rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org    #添加更新源

sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  #安装源

sudo yum –enablerepo=elrepo-kernel install kernel-ml -y    #启用内核yum源的同时安装内核

rpm -qa | grep kernel     #看一下是内核版本是否比之前的内核版本更新,内核版本更新,符合大于4.10,则说明内核升级成功[/cc]

配置系统默认启动内核版本

(1)普通方法:

[cc lang=”text”]sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \’

#看一下类似kernel-ml-4.11.0-1.el7.elrepo.x86_64之类的内容在哪行,第一行为0,第二行为1,以此类推

sudo grub2-set-default 1 #1为上面内容所在的行数[/cc]

(2)修改grub2 (针对没有grub2.cfg文件)

修改/etc/grub2-efi.cfg文件,将3.10内核部分注释,部分内容截图
[cc lang=”text”]
###menuentry ‘CentOS Linux (3.10.0-1062.18.1.el7.x86_64) 7 (Core)’ –class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option ‘gnulinux-3.10.0-1062.el7.x86_64-advanced-07f41014-2c86-4b18-96f7-5a9e50a0f13e’ {
### load_video
### set gfxpayload=keep
### insmod gzio
### insmod part_gpt
### insmod xfs
### set root=’hd1,gpt2′
### if [ x$feature_platform_search_hint = xy ]; then
### search –no-floppy –fs-uuid –set=root –hint-bios=hd1,gpt2 –hint-efi=hd1,gpt2 –hint-baremetal=ahci1,gpt2 463082c5-cd34-4a98-8683-69f3258937d0
### else
### search –no-floppy –fs-uuid –set=root 463082c5-cd34-4a98-8683-69f3258937d0
### fi
### linuxefi /vmlinuz-3.10.0-1062.18.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.utf8
### initrdefi /initramfs-3.10.0-1062.18.1.el7.x86_64.img
###}
menuentry ‘CentOS Linux (5.4.12-1.el7.elrepo.x86_64) 7 (Core)’ –class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option ‘gnulinux-3.10.0-1062.el7.x86_64-advanced-07f41014-2c86-4b18-96f7-5a9e50a0f13e’ {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod xfs
set root=’hd1,gpt2′
if [ x$feature_platform_search_hint = xy ]; then
search –no-floppy –fs-uuid –set=root –hint-bios=hd1,gpt2 –hint-efi=hd1,gpt2 –hint-baremetal=ahci1,gpt2 463082c5-cd34-4a98-8683-69f3258937d0
else
search –no-floppy –fs-uuid –set=root 463082c5-cd34-4a98-8683-69f3258937d0
fi
linuxefi /vmlinuz-5.4.12-1.el7.elrepo.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
initrdefi /initramfs-5.4.12-1.el7.elrepo.x86_64.img
}[/cc]

reboot     #重启服务器,使用新内核

uname -r   #显示4.10以上的版本正常

配置BBR

[cc lang=”text”]echo ‘net.core.default_qdisc=fq’ | sudo tee -a /etc/sysctl.conf
echo ‘net.ipv4.tcp_congestion_control=bbr’ | sudo tee -a /etc/sysctl.conf
sudo sysctl -p[/cc]

完成后,分别执行如下命令来检查 BBR 是否开启成功:

[cc lang=”text”]sudo sysctl net.ipv4.tcp_available_congestion_control
# 输出应为 net.ipv4.tcp_available_congestion_control = bbr cubic reno
sudo sysctl -n net.ipv4.tcp_congestion_control
# 输出应为 bbr
lsmod | grep bbr
# 输出应类似 tcp_bbr 16384 28[/cc]

Leave a Reply

Your email address will not be published.