甲骨文 VPS CentOS 7 升级内核并开启 bbr

  BBR是Google出品并开源的TCP BBR 拥塞控制算法,目前已提交并集成在最新的Linux内核中。而我们使用的VPS服务器特别是国外的vps上安装BBR后,可以明显提高服务器的连接速度,降低丢包。可以说开启BBR后,不管看视频,看网页,还是代理连接,都会提升大幅度的效果。

  BBR 模块从 4.9 版本的内核中开始支持,CentOS7 的发布版标配的是 kernel-3.10,所以首先需要升级内核到大于等于 4.9 的版本,然后再更改设置开启 BBR。

  注意:在升级内核时不要删除旧版本内核。只要保留旧版本内核,可以通过VNC连接选择旧版内核启动系统来拯救。

1、更新系统

sudo yum update -y

2、查看内核

uname -r

3、改 SELinux 为 permissive 模式,查看SELinux状态,默认开启:

sestatus

4、运行下面命令,将字段 SELINUX=enforcing 改为 SELINUX=permissive

sudo vi /etc/sysconfig/selinux

5、重启VPS:

sudo reboot

6、添加 elrepo 源:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

7、查看可安装内核:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

8、安装内核:

sudo yum --enablerepo=elrepo-kernel install kernel-ml

9、查看新内核是否安装成功:

rpm -qa | grep kernel

10、更新引导:

  这是最容易出错的地方,大多启动配置文件,是在/boot/grub2/grub.cfg,而该系统为EFI引导,配置文件位置不同。

# 其他VPS使用如下:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# 甲骨文VPS使用如下:
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

11、列出系统开机的所有启动项:

# 其他VPS使用如下:
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

# 甲骨文VPS使用如下:
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg

12、设置默认启动项:

sudo grub2-set-default 0

13、重启VPS:

sudo reboot

14、查看内核:

uname -r
# 显示:5.17.1-1.el7.elrepo.x86_64 可以看到内核更新成功。

15、开启 bbr:

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

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

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                20480  74

17、检查有无SELinux相关错误:

sudo cat /var/log/messages | grep "SELinux is preventing"

18、确保无错误后,再启用 SELinux Enforcing 模式 将 SELINUX=permissive 改回 SELINUX=enforcing

sudo vi /etc/sysconfig/selinux

19、重启 VPS:

sudo reboot

标签