linux 升级内核和应用TCP BBR 算法

首先确认目前使用内核

uname -r

一. centos

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

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

查看内核列表,第一个的编号是 0

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

返回信息,可以看见刚刚安装的内核 4.15 处于第1位,编号 0

CentOS Linux 7 Rescue d8541fed23b44e83849fc672986e293c (4.15.10-1.el7.elrepo.x86_64)

CentOS Linux (4.15.10-1.el7.elrepo.x86_64) 7 (Core)

CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)

CentOS Linux (0-rescue-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) 7 (Core)

设置处于编号 0 的 4.15 内核默认运行

grub2-set-default 0

重启 linux,SSD 存储器的服务器重启速度还是快的,1分钟就可以重新远程控制了

reboot

查看内核是否在使用 4.15

uname -r

写入参数到 sysctl.conf

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

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

sysctl -p

检测设置是否生效

sysctl net.ipv4.tcp_available_congestion_control

返回信息,可以看见 bbr 已经启用

[root@set-fire ~]# sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = bbr cubic reno

查看 bbr 是否在运行

lsmod | grep bbr

返回信息

[root@set-fire ~]# lsmod | grep bbr

tcp_bbr 16384 29

二 . ubnutu

更新内核

  • 使用 sudo 或者切换至 root 账户
sudo -s
  • 创建一个暂时盛放内核安装包的目录 kernel (可选。只是为了一个干净的目录~)
mkdir kernel && cd kernel
  • 下载最新内核,最新内核查看:http://kernel.ubuntu.com/~kernel-ppa/mainline/
curl -O http://kernel.ubuntu.com/~kernel-ppa/mainline/<版本号>/linux-image-<版本号>-generic_<版本号>_amd64.deb

PS:已经打包好 Ubuntu 新内核安装包分为两部分 headers 和 image,image 才是我们需要的内核安装包,headers 也可以下载来一起安装。而安装包又分为两个版本 generic 和 lowlatency,在这里我选择的是 generic 版本,而 lowlatency 适合于 Ubuntu Studio 这种音乐工作站需要一种 lowlatency(低延迟)的 “实时内核”。另外还有一个 linux-headers-*_all.deb 的安装包也可以下载来一起安装。

  • 安装内核(包的名字太长,直接使用 *.deb 泛指)
dpkg -i *.deb
  • 删除旧内核(可选)
dpkg -l|grep linux-image 
apt-get purge <旧内核>
  • 更新 grub 系统引导文件并重启
update-grub
reboot

开启 TCP BBR
开机后 uname -r 看看是不是内核 ≥ 4.9
执行

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

保存生效

sysctl -p

执行

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

如果结果都有bbr, 则证明你的内核已开启 TCP BBR!
执行

lsmod | grep bbr

你可能感兴趣的:(linux 升级内核和应用TCP BBR 算法)