聰明在於勤奮,天才在於積累。

RHEL 7 / Centos 7 使用 TCP BBR

Google開發了一種稱為TCP瓶頸帶寬和BBR的TCP擁塞控制算法(CCA),它克服了Reno和CUBIC(默認CCA)中發現的許多問題。這種新算法不僅可以顯著提高帶寬,還可以降低延遲。TCP BBR已經與google.com服務器一起使用,現在你可以實現它 – 只要你的Linux機器運行kernel 4.9或更新版本。

Linux使用Reno和CUBIC。您可以通過發出命令來測試:

sysctl net.ipv4.tcp_available_congestion_control

上面的命令應該報告

net.ipv4.tcp_available_congestion_control = cubic

你需要什麼

您需要做的第一件事是確保您的Linux機器運行支持的kernel。發出命令uname -r。如果你的kernel早於4.9,這將不起作用。你必須升級你的kernel。例如,開箱即用的kernel 16.04運行kernel 4.4。如果您的服務器可以更新kernel。

RHEL7現在有一種非常簡單的方法可以更新到更新的kernel。為此,請打開終端窗口並發出以下命令:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

安裝kernel 4.9.0:

yum --enablerepo=elrepo-kernel install kernel-ml -y

設定GRUB默認啟動kernel:

grub2-set-default 0

運行上述命令後,重啟服務器。引導服務器後,登錄並發出uname -r 命令。您現在應該看到服務器至少運行kernel 4.12.5(截至本文撰寫時)。

[root@localhost ~]# uname -r
4.12.5-1.el7.elrepo.x86_64

現在你有了一個支持kernel,讓我們將BBR設置為默認的擁塞控制算法。

設置BBR

將BBR設置為默認值很簡單。打開終端窗口並發出命令vi /etc/sysctl.conf。在此文件的底部,添加以下兩行:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

保存並關閉該文件。使用命令sudo sysctl -p 重新加載sysctl 。現在,當您檢查正在使用哪種擁塞控制算法時( 使用命令sysctl net.ipv4.tcp_congestion_control ),您將看到包含bbr的輸出。

[root@localhost ~]# sysctl net.ipv4.tcp_congestion_control 
net.ipv4.tcp_congestion_control = bbr

這裡的所有都是它的。您現在可以在Linux上享受Google改進的CCA。您應該看到該服務器上的網絡速度有了顯著改進。

移除舊有kernel

刪除舊的kernel的目的是防止yum更新的時候, 更新舊版而覆蓋grub默認啟動的選項,上面正常啟動bbr後就能將舊有的kernel 移除。

[root@localhost ~]# yum -y remove kernel kernel-tools

 

贊(0)