升级 CentOS 内核至 4.9


转自:升级 CentOS 内核至 4.9

介绍

Linux Tovalds 于 2016 年 12 月 11 日发布了 Kernel 4.9 正式版本,带来了一些令人激动的特性以及一些驱动的更新。Linux 稳定内核维护者 Greg Kroah-Hartman 也早已宣布下一个长期支持版(LTS)内核将是 Linux 4.9。来自 Google 的 BBR (Bottleneck Bandwidth and RTT) TCP 拥塞控制 (congestion control) 算法也在这个版本并入了主线。为了体验 BBR TCP,迫不及待的需要将 CentOS 7 的内核升级至该版本。具体的更新可以查阅:Linux Kernel 4.9 release notes

安装

要在 CentOS 上安装最新的内核版本,我们需要增加一个 ELRepo 源。

首先,让我们添加 ELRepo GPG key:

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

为 RHEL-6,SL-7,CentOS-7 源:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

老版本也可以享受 kernel 4.9,譬如为 RHEL-6,SL-6,CentOS-6 添加 ELRepo 源:

rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

为 RHEL-5,SL-5,CentOS-5 添加 ELRepo 源:

rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpm

当然,别忘了 fastestmirror 还是需要的

yum install yum-plugin-fastestmirror

最后,安装 kernel 4.9

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

当然,将 kernel-ml 选为第一启动

grub2-set-default 0

重启后,通过 uname -a 查看内核是否切换到 4.9,譬如我的

$ uname -a
Linux box 4.9.0-1.el7.elrepo.x86_64 #1 SMP Sun Dec 11 15:43:54 EST 2016 x86_64 x86_64 x86_64 GNU/Linux

开启 BBR TCP

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

重启后,首先 uname -a 看下内核是否切换到 4.9,然后执行下面明亮查看内核是否开启 TCP BBR:

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

查看 tcp_bbr 模块是否加载:

lsmod | grep tcp_bbr

如果想关闭BBR就可以执行:

sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p
  • 1
  • 2
  • 3

然后重启才能生效


Gentoo Kernel

打开 BBR TCP 开关,并将默认 TCP 拥塞控制设为 BBR:

Networking support  --->
    Networking options  --->
        -*- TCP/IP networking
        [*]   TCP: advanced congestion control  --->
            <*>   BBR TCP
            Default TCP congestion control (BBR)  --->
                ( ) Cubic
                (X) BBR
                ( ) Reno

题外话

只说下体验,kimsufi 法国的盒子,本来上行在 4MB 以下,现在基本维持在 8MB 以上。

同时说一下,阿里云的 vps,CentOS 7 可以升级到 kernel 4.9,其他的发行版没试过。

参考:https://www.ostechnix.com/install-linux-kernel-4-9-centos-ubuntu/



  • 查看内核是否安装成功
rpm -qa | grep kernel
  • 删除旧内核(可选)
rpm -ev 旧内核  
  • 更新 grub 系统引导文件并重启
sed -i 's:default=.*:default=0:g' /etc/grub.conf
reboot

开不了机的打开 vps 后台控制面板的 vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了

安装完成后不要忘记修改 /boot/grub/menu.lst 和 /etc/grub.conf,将这两个文件中旧内核的启动项删除即可避免无法重启的问题。

  • 更新到最新版内核
yum --enablerepo=elrepo-kernel update -y 


CentOS 7

  • 下载更换内核
    最新内核查看这里
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功
rpm -qa | grep kernel
  • 删除旧内核(可选)
rpm -ev 旧内核  
  • 更新 grub 系统引导文件并重启
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0  # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
reboot
  • 注意,某些服务商(如 Digital Ocean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。

重新启动后,如果会出现 "read-only file system" 的错误,root账户下执行 mount -o remount rw /即可




猜你喜欢

转载自blog.csdn.net/suhiymof/article/details/78540747
今日推荐