CentOS 7安裝TCP BBR擁塞算法

CentOS 7安裝TCP BBR擁塞算法

TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google設計,於2016年發佈的擁塞算法。以往大部分擁塞算法是基於丟包來作為降低傳輸速率的信號,而BBR則基於模型主動探測。該算法使用網絡最近出站數據分組當時的最大帶寬和往返時間來創建網絡的顯式模型。數據包傳輸的每個累積或選擇性確認用於生成記錄在數據包傳輸過程和確認返回期間的時間內所傳送數據量的採樣率。

Google在YouTube上應用該算法,將全球平均的YouTube網絡吞吐量提高了4%,在一些國家超過了14%。根據實地測試,在部署了最新版內核並開啟了 TCP BBR 的機器上,網速甚至可以提升好幾個數量級。

從 4.9 開始,Linux 內核已經用上了該算法,並且對於QUIC可用。如果想在Linux使用BBR,那麼首先就是判斷內核版本是否大於4.9,如果符合版本標準,那麼直接啟動BBR就可以了,如果低於4.9,升級內核之後啟動就行了。

下面就介紹一下在CentOS 7.3上安裝TCP BBR的方法。

  首先將Centos系統更新,更新到7.3版本。

yum update

  查看系統版本,輸出的release數值大於7.3即可。

cat /etc/redhat-release

  對於某些機器來說,安裝一下wget

yum install wget

  方法1:自動安裝,使用一鍵安裝腳本

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

  方法2:手動安裝

  使用下面命令安裝elrepo並升級內核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

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

  更新grub文件並重啟(reboot後,ssh會斷開,稍等一會兒重新連接)

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

grub2-set-default 0

reboot

  開機後查看內核是否已更換為4.9

uname -r

  啟動BBR。依次執行下面命令就可以了。

echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf

echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf

sysctl -p

  驗證bbr是否已經開啟

  A,驗證當前TCP控制算法的命令:

sysctl net.ipv4.tcp_available_congestion_control

  返回值一般為:net.ipv4.tcp_available_congestion_control = bbr cubic reno 或者為:net.ipv4.tcp_available_congestion_control = reno cubic bbr

  B,驗證BBR是否已經啟動。

sysctl net.ipv4.tcp_congestion_control

  返回值一般為:net.ipv4.tcp_congestion_control = bbr

lsmod | grep bbr

  返回值有 tcp_bbr 模塊即說明 bbr 已啟動。


分享到:


相關文章: