CENTOS7作为常用的服务器系统,其正式版的内核都是相当保守的。以下介绍以下升级最新版本的内核方法,目的是为了实现内核的BBR功能,改善CENTOS7的网络功能
BBR:Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。
一、升级内核
1.1 查询内核版本:
cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)
uname -r 5.2.13-1.el7.elrepo.x86_64
由以上可见,我使用的是CentOS 7.7版,内核为5.2.13
1.2 增加升级内核源
CentOS允许使用 ELRepo 第三方源升级内核版本。 ELRepo 也是最常用的第三方源,包含一些正式版本中未升级的软件及组件的新版本。
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
1.3在源中查询内核相关包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
1.4安装最新的主线稳定内核
yum --enablerepo=elrepo-kernel install kernel-ml
1.5确认后,重启系统,检查内核版本
uname -r
二、开启BBR加速
2.1 手动配置BBR设置
echo net.core.default_qdisc=fq >> /etc/sysctl.conf echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf sysctl -p
检查是否生效,显示有tcp_bbr即生效.
lsmod | grep bbr
2.2 或者使用bbr脚本设置BBR生效
yum -y install wget wget --no-check-certificatehttps://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.sh ./bbr.sh
按任意键运行完成后,运行lsmod | grep bbr确认是否生效
三、设置GRUB默认的内核版本
3.1 检查系统目前可用的内核版本
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
记住最新版本的序号
3.2 配置默认GRUB配置的默认启动内核设置
vim /etc/default/grub
把GRUB_DEFAULT=saved改为GRUB_DEFAULT=“想要启动的内核序号” ,保存配置文件后关闭配置文件。
3.3 重建内核配置
grub2-mkconfig -o /boot/grub2/grub.cfg
3.4 重启系统检查是否生效
确认内核是否为设置的对应版本
uname -r
确认bbr配置是否生效,显示是否带有bbr.
lsmod | grep bbr
写在最后:需要注意的是本来bbr.sh脚本可以自动设置更新最新的内核启用bbr,但是实际过程中发现有时候重启后内核恢复为旧版本。因此第三点仍然需要进行设置。
发表回复