尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
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 已啟動。