BBR 是 Google 發布了一個新的 tcp 擁塞控制算法,原文叫做 Bottleneck Bandwidth and RTT 簡稱 BBR,它必須在 Linux kernel 4.9 版本以上才能運行。
TCP BBR 擁塞控制的目地,是最大化利用網路寬頻,我們想像一條網路線就像一條水管,要想充分使用這條水管,最好的方法就是讓這根水管灌滿水。
BBR 理論上解決兩個問題:
- 在有一定丟包率的網路上充分利用頻寬。
- 降低網路上的 buffer 佔用率,而達到降低延遲的目的。
更詳細的 BBR 原理請自行 google 了
實際用 KVM VPS 測試結果,可以參考下面的 2 張圖:
未開啟 TCP BBR 的 VPS
已開啟 TCP BBR 的 VPS
可以看出開啟 TCP BBR 的 VPS 網路是比較穩定的。
開啟 TCP BBR 的方法,網路上有很多的教學,試用很多腳本後覺得「秋水逸冰」的腳本最穩定,所以我就轉貼秋水逸冰的教學:
本腳本適用環境
- 系統支持:CentOS 6+,Debian 7+,Ubuntu 12+
- 虛擬技術:OpenVZ 以外的,比如 KVM、Xen、VMware 等
- 內存要求:≥128M
- 最後更新日期:2017 年 05 月 15 日
使用方法
使用 root 用户登入,運行以下命令:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
安裝完成後,腳本會提示需要重啟 VPS,輸入「y」並按 Enter 後重啟 VPS。
重啟完成後,進入 VPS,驗證一下是否成功安裝最新 Linux 內核並開啟 TCP BBR,輸入以下命令:
uname -r
返回值一般為:
4.12.9-041209-generic
查看內核版本,含有 4.12 就表示 OK 了
或者運行以下的指令,查看是否成功開啟 TCP BBR:
sysctl net.ipv4.tcp_available_congestion_control
返回值:net.ipv4.tcp_available_congestion_control = bbr cubic reno
sysctl net.ipv4.tcp_congestion_control
返回值:net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
返回值:net.core.default_qdisc = fq
特別說明
VPS 如果是 OpenVZ 虛擬技術,就不要試了,是無法開啟 BBR 的功能
如果是 Google Cloud Platform 更換內核,重啟後整個硬碟變為唯讀的情況,請執行以下命令即可恢復:
mount -o remount rw /
參考文件:
一鍵安裝最新內核並開啟 BBR 腳本
發佈留言