转自:升级 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
或者
yum --enablerepo=elrepo-kernel install kernel-lt
当然,将 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
返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
或者为:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
查看 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
然后重启才能生效
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 旧内核
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
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 旧内核
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0 # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
reboot
重新启动后,如果会出现 "read-only file system" 的错误,root账户下执行 mount -o remount rw /
即可
https://teddysun.com/489.html