年更鸽子探头.jpg

距离上次更新小知识好像已经过去很久了,划水的时光总是快乐且短暂(

总之趁着自己实验部署BBR先水一篇再说(

BBR算法介绍

BBR算法是Google在Linux Kernel 4.9内核上加入的TCP拥塞控制算法。在BBR之前可以理解TCP的控制算法都为被动的拥塞控制算法,而BBR控制算法可以认为是一种主动拥塞控制算法。BBR通过避免排队来尽量的跑满带宽,以此达到加速的目的。

更换Linux内核

Ubuntu

在Kernel 4.9内核开启BBR算法,首先需要将服务器内核更新为4.9以上。输入uname -r查看当前系统内核版本号验证内核版本。

下载最新内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.12/linux-image-4.14.12-041412-generic_4.14.12-041412.201801051649_amd64.deb

安装内核

dpkg -i linux-image-4.*.deb 

删除旧内核(可选)

dpkg -l | grep linux-image 
apt-get purge 旧内核

更新grub系统引导文件并重启

update-grub 
reboot  

CentOS

1、输入以下命令:

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

2、执行完成之后,内核就安装好了,但默认不是最新的,需要自己修改。

首先执行以下命令,看看有哪些内核:

cat /boot/grub2/grub.cfg |grep menuentry

执行命令:

grub2-set-default ‘CentOS Linux 7 Rescue f162c5663d6044ba8d784979acd61b44 (5.4.2-1.el7.elrepo.x86_64)’

PS:CentOS Linux 7 Rescue f162c5663d6044ba8d784979acd61b44 (5.4.2-1.el7.elrepo.x86_64) 这个可以替换成你自己想要安装的内核版本。

3、安装完成之后执行reboot命令重启。

4、重启完成之后执行以下命令确认是否使用了正确的内核:

uname -r

得到如下结果则升级成功:

5.4.2-1.el7.elrepo.x86_64

开启BBR加速

开机后输入uname -r再次确认内核版本

执行 lsmod | grep bbr,如果结果中没有 tcp_bbr则:

执行

modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.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
sysctl net.ipv4.tcp_congestion_control

如果结果都有 bbr, 则证明你的内核已开启 bbr

执行 lsmod | grep bbr, 看到有 tcp_bbr 模块即说明 bbr 已启动。