查看版本内核
通过 uname -r 查看,可以发现已经生效了。
# uname -r
更新仓库
yum -y update
-y 选项可以在每次需要确认时,自动使用 yes,节省时间。
启用 ELRepo 仓库
ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
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
查看可用的系统内核包
可以看到,只有 4.4 和 4.15 两个版本可以使用:
# yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
安装最新内核
# yum --enablerepo=elrepo-kernel install kernel-ml
--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。
查看系统上的所有可以内核
# sudo awk -F\’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg
设置 grub2
我的机器上存在 4 个内核,我们要使用 4.15 这个版本
可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置。
通过 grub2-set-default 0 命令设置,其中 0 来自上一步的 awk 命令:
# sudo grub2-set-default 0
编辑 /etc/default/grub 文件,设置 GRUB_DEFAULT=0,表示使用上一步的 awk 命令显示的编号为 0 的内核作为默认内核:
# vi /etc/default/grub
生成 grub 配置文件并重启
下一步,通过 gurb2-mkconfig 命令创建 grub2 的配置文件:
# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
内核安装好后,需要设置为默认启动选项并重启后才会生效
# sudo reboot
验证
通过 uname -r 查看,可以发现已经生效了。
# uname -r
4.15.6-1.el7.elrepo.x86_64
删除旧内核(可选)
查看系统中全部的内核:
# rpm -qa | grep kernel
内核有两种删除方式:通过 yum remove 命令或通过 yum-utils 工具。
通过 yum remove 命令:
yum remove kernel-tools-libs-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64
通过 yum-utils 工具
如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核。
安装
yum install yum-utils
删除
package-cleanup --oldkernels
开启BBR
执行以下指令: cat >> /etc/sysctl.conf << EOF net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr EOF 使配置生效: sysctl -p # 验证 bbr 是否开启 sysctl net.ipv4.tcp_available_congestion_control 如果成功,应该会看到 net.ipv4.tcp_congestion_control = bbr # 依然是验证 lsmod | grep bbr 如果成功,应该会看到类似 tcp_bbr 16384 3 这样的文字