講道理,CentOS7想開個BBR如果不用一鍵腳本的話,還真有點麻煩。。。如果是Debian/Ubuntu的話基本就是幾條命令就能解決的事,但是由於CentOS的內核一向過於古老,所以你們懂的= =
BBR這項新功能是在kernel4.9中加入的,而CentOS都還停留在2.x的內核,所以要給CentOS裝BBR第一件事就是想辦法裝上高版本的內核。
那麼我們首先安裝elrepo源:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
安裝yum-utils:
yum -y install yum-utils
啟用elrepo-kernel:
yum-config-manager --enable elrepo-kernel
安裝elrepo內的最新內核:
yum -y install kernel-ml kernel-ml-devel
完成之後,一般情況下,新安裝的內核就應該已經在grub2的0號啟動位了,不過為了以防萬一,還是自己執行下面的命令手動查看一番:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
如圖所示的回顯,4.x的內核就是我們剛新安裝上的內核了,確實是在0號:
接下來設置grub2默認的啟動項為0,如果你的4.x內核啟動編號不是0就把下面命令的0改成對應你自己的:
grub2-set-default 0
然後直接重啟機器:
reboot
如果內核更換成功並且grub2啟動沒問題的話,稍等片刻機器就能重新開機,但如果哪個地方出了問題可能就掛掉了,此時你只能通過VNC或者IPMI檢查。也有可能會出現重啟之後內核沒有更換成功的問題,這就要自己檢查了。
這裡我是用的GoogleCloud,在系統重啟之後先看下內核是否更換成功:
uname -a
返回4.x的內核信息就說明更換成功:
所以接下來就是開啟BBR了,直接依次執行下面的三條命令即可完成開啟BBR的操作:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
最後驗證BBR是否啟用成功:
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr
返回如下圖信息就說明大功告成了:
閱讀更多 DOCKERQI 的文章