Centos7開啟BBR
升級內核
BBR 模塊從 4.9 版本的內核中開始支持,CentOS7 的發布版標配的是 kernel-3.10,所以首先需要升級內核到大於等於 4.9 的版本,然后再更改設置開啟 BBR。
查看內核版本
[root@centos7 ~]# uname -r
3.10.0-1127.19.1.el7.x86_64
查詢得到的版本號為:3.10.0-1127.19.1.el7.x86_64,也就是3.10版本,需要進行升級
YUM方式升級安裝
#導入該源的秘鑰
[root@centos7 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#啟用該源倉庫
[root@centos7 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看有哪些內核版本可供安裝
[root@centos7 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
-
可用的源如下所示:
可用源主要分為了兩個大版本,一個是
lt
版本,為長期支持版。另一個是ml
版本,就是主線版本。長期支持版更加穩定!!建議選擇長期支持版 -
安裝長期支持版
[root@centos7 ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y
-
檢查是否安裝成功
[root@centos7 ~]# rpm -qa | grep kernel
查看是否有 5.4+ 的內核版本,如果有,則證明安裝成功了:
更改開機啟動項
在這里我根據網上教程執行 grub2-set-default 0
命令,經嘗試 發現,執行該條命令的一個前提在於新安裝的內核在第一個,所以將0設為默認啟動項。 由上圖可知,我新安裝的內核(Centos Linux 5.0.9)不是在第一個,所以這樣執行是有問題的。正確的做法應該是:
- 查看所有的內核
[root@centos7 ~]# cat /boot/grub2/grub.cfg | grep menuentry
可以看到我這里面有6個內核
- 修改最新內核為默認啟動(這兒只能使用上面命令輸出中雙引號 “ ” 或者單引號 ‘ ‘ 中的內容)
[root@centos7 ~]# grub2-set-default 'CentOS Linux (5.4.123-1.el7.elrepo.x86_64) 7 (Core)'
-
驗證默認啟動內核
[root@centos7 ~]# grub2-editenv list saved_entry=CentOS Linux (5.4.123-1.el7.elrepo.x86_64) 7 (Core)
-
重啟
[root@centos7 ~]# reboot
-
查看內核版本
[root@centos7 ~]# uname -r 5.4.123-1.el7.elrepo.x86_64
開啟BBR
[root@centos7 ~]# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
[root@centos7 ~]# echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
[root@centos7 ~]# sysctl -p
執行這一步時可能會有類似報錯 error: “No such file or directory” setting key “net.core.default_qdisc”,不用管直接 reboot 即可。重啟后執行。
[root@centos7 ~]# sysctl -n net.ipv4.tcp_congestion_control
bbr
[root@centos7 ~]# lsmod | grep bbr
tcp_bbr 20480 14
如果兩行命令都有 BBR 字樣輸出,則代表 BBR 啟用成功。