BBR 需要内核 4.9 以上
1.查看内核版本:
uname -r
打印类似如下:
3.10.0-1062.9.1.el7.x86_64
2. 安装新的内核:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
3.查看安装结果:
rpm -qa | grep kernel
打印类似如下:
kernel-headers-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.el7.x86_64
kernel-tools-3.10.0-1062.9.1.el7.x86_64
kernel-3.10.0-1062.9.1.el7.x86_64
kernel-ml-5.4.8-1.el7.elrepo.x86_64 //刚刚我们安装新的内核版本
kernel-tools-libs-3.10.0-1062.9.1.el7.x86_64
4.搜索已安装的内核版本,并设置默认内核:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
打印类似如下:
CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)//刚刚我们安装新的内核版本
CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-058b0c5236a18eca3eab4976f4c5072a) 7 (Core)
设置内核:根据上面列表打印的索引值从 0 开始,即 (5.4.8-1.el7.elrepo.x86_64) 7 (Core) 所在的 行索引
sudo grub2-set-default 0
查看grub2设置:
grub2-editenv list
打印类似如下:
saved_entry=0
或者:
cat /boot/grub2/grub.cfg |grep menuentry
打印类似如下:
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.4.8-1.el7.elrepo.x86_64-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
menuentry 'CentOS Linux (3.10.0-1062.4.3.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1062.4.3.el7.x86_64-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
menuentry 'CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1062.4.1.el7.x86_64-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
menuentry 'CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1062.1.2.el7.x86_64-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
menuentry 'CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1062.el7.x86_64-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
menuentry 'CentOS Linux (0-rescue-058b0c5236a18eca3eab4976f4c5072a) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-058b0c5236a18eca3eab4976f4c5072a-advanced-b8a07faa-b86b-406b-9158-c5d9c617a5e7' {
设置内核:根据内核名称设置,即: CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)
sudo grub2-set-default 'CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)'
查看grub2设置:
grub2-editenv list
打印类似如下:
saved_entry=CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)
5.重启系统:
sudo shutdown -r now
或者:
reboot
6.重新登录系统后查看:
uname -r
打印类似如下:
5.4.8-1.el7.elrepo.x86_64
7.启动 BBR
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
打印类似如下:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
检测是否可用:
sudo sysctl net.ipv4.tcp_available_congestion_control
打印类似如下:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
查看当前使用:
sudo sysctl -n net.ipv4.tcp_congestion_control
打印类似如下:
bbr
8.查看BBR
lsmod | grep bbr
打印类似如下:
tcp_bbr 20480 7
完成!