甲骨文 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