文章目录
第一步:升级内核
首先检查系统内核版本,需要内核在4.9以上才能较好的支持BBR的使用
uname -r
安装三方elrepo最新内核
导入 elrepo 软件源的 GPG 公钥
#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
导入 elrepo 软件源
#rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
启用软件源并下载安装最新稳定版内核
#yum --enablerepo=elrepo-kernel install kernel-ml -y
#注意当 使用的是 Dell R630服务器,网卡是Intel Corporation 82599ES 10-Gigabit SFI/SFP+,在安装kernel5.7时可能会造成无法成功安装内核,或者安装后无法正确启动,解决办法如下
#yum --enablerepo=elrepo-kernel install kernel-ml* --skip-broken
##安装长期支持版命令:yum --enablerepo=elrepo-kernel install kernel-lt -y
安装完成后,查看已安装的内核:
得到结果如下:在输出中看到 kernel-ml-5.0.9-1.el7.elrepo.x86_64 类似的内容,表示安装成功。
1 kernel-tools-libs-3.10.0-957.10.1.el7.x86_64
2 kernel-ml-5.0.9-1.el7.elrepo.x86_64
3 kernel-3.10.0-957.el7.x86_64
4 kernel-tools-3.10.0-957.10.1.el7.x86_64
5 kernel-3.10.0-957.10.1.el7.x86_64
第二步:修改grub2引导(这种方式用于bios方式安装的系统),并重启系统
A、boot引导就参照这样
#egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
B、uefi引导就参照这样
#egrep ^menuentry /etc/grub2-efi.cfg | cut -f 2 -d \'
会得到如下结果:
0 CentOS Linux (5.0.9-1.el7.elrepo.x86_64) 7 (Core)
1 CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
2 CentOS Linux (3.10.0-123.el7.x86_64) 7 (Core)
3 CentOS Linux (0-rescue-673f1d7aab9c405ebd6a75a926fb6b0f) 7 (Core)
由于序号从0开始,设置默认启动项为0并重启系统:
#grub2-set-default 0
#或者如下进行设置也是可以的
#grub2-set-default "CentOS Linux (5.7.3-1.el7.elrepo.x86_64) 7 (Core)"
验证是否设置成功
#grub2-editenv list
#shutdown -r now
重启完成后,重新登录并重新运行uname命令来确认你是否使用了正确的内核:
#uname -r
第三步:开启bbr
echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf
sysctl -p
#验证bbr是否加载成功
sysctl net.ipv4.tcp_available_congestion_control
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr
生产环境的特殊硬件,BCM 57800 II & BCM 5720 网卡在centos7 系统上3、4 系列内核上能正确使用网卡,在5系列内核上出现无法正常加载导致无法使用BBR的解决办法
#硬件信息
[root@localhost ~]# lspci | grep Eth
01:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet (rev 10)
01:00.1 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet (rev 10)
01:00.2 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet (rev 10)
01:00.3 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet (rev 10)
#linux 3系列,4系列正常的内核驱动版本
[root@localhost ~]# ethtool -i em1
driver: bnx2x
version: 1.712.30-0
firmware-version: FFV7.10.18 bc 7.10.11
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
#linux 5系列异常的内核驱动版本
[root@localhost ~]# ethtool -i em1
driver: bnx2x
version: 1.736.30-0
firmware-version: FFV7.10.18 bc 7.10.11
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
#解决办法一:换用linux 4.9的内核
#A、解决办法可以手动升级到 4.9以上的内核,以下是二进制内核下载地址
https://cbs.centos.org/koji/packageinfo?packageID=455
#B、也可用如下命令直接下载安装
yum install https://cbs.centos.org/kojifiles/packages/kernel/4.9.188/35.el7/x86_64/kernel-4.9.188-35.el7.x86_64.rpm
yum install https://cbs.centos.org/kojifiles/packages/kernel/4.9.188/35.el7/x86_64/kernel-devel-4.9.188-35.el7.x86_64.rpm
#解决办法二:安装博通驱动程序
#Centos7/RHEL7 ,在linux kernel 3下面直接安装
wget https://qiniu.wsfnk.com/kmod-tg3-3.138a-1.rhel7u7.x86_64.rpm
yum install kmod-tg3-3.138a-1.rhel7u7.x86_64.rpm
reboot
#Centos8/RHEL8 ,在linux kernel 3下面直接安装
wget https://qiniu.wsfnk.com/kmod-tg3-3.138a-1.rhel8u0.x86_64.rpm
yum install kmod-tg3-3.138a-1.rhel8u0.x86_64.rpm
reboot
#SUSE12 Kernel4遇到该问题,请使用如下驱动程序
wget https://qiniu.wsfnk.com/broadcom-tg3-kmp-default-3.138a_k4.4.73_5-100R.4.1.x86_64.rpm
执行安装。然后重启
#SUSE15 Kernel4遇到该问题,请使用如下驱动程序
wget https://qiniu.wsfnk.com/broadcom-tg3-kmp-default-3.138a_k4.12.14_195-4.1.x86_64.rpm
执行安装,然后重启
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论