CentOS7 開啟Google BBR加速
阿新 • • 發佈:2018-12-15
BBR 是 Google 提出的一種新型擁塞控制演算法,可以使 Linux 伺服器顯著地提高吞吐量和減少 TCP 連線的延遲。
BBR解決了兩個問題:
再有一定丟包率的網路鏈路上充分利用頻寬。非常適合高延遲,高頻寬的網路鏈路。
降低網路鏈路上的buffer佔用率,從而降低延遲。非常適合慢速接入網路的使用者。
專案地址:https://github.com/google/bbr
升級核心
開啟 BBR 要求 4.10 以上版本 Linux 核心,可使用如下命令檢視當前核心版本:
- uname -r
可以得到類似如下的結果:
- 3.10.0-514.10.2.el7.x86_64
如果當前核心版本低於 4.10,可使用 ELRepo 源更新:
- sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
- sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
安裝完成後,檢視已安裝的核心:
- rpm -qa | grep kernel
得到結果如下:
- kernel-3.10.0-123.el7.x86_64
- kernel-headers-3.10.0-514.16.1.el7.x86_64
- kernel-ml-4.11.0-1.el7.elrepo.x86_64
- kernel-tools-3.10.0-514.16.1.el7.x86_64
- kernel-3.10.0-514.16.1.el7.x86_64
- kernel-tools-libs-3.10.0-514.16.1.el7.x86_64
在輸出中看到 kernel-ml-4.11.0-1.el7.elrepo.x86_64 類似的內容,表示安裝成功。
修改grub2引導
執行:
- sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
會得到如下結果:
- CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.11.0-1.el7.elrepo.x86_64)
- CentOS Linux (4.11.0-1.el7.elrepo.x86_64) 7 (Core)
- CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
- CentOS Linux (3.10.0-123.el7.x86_64) 7 (Core)
- CentOS Linux (0-rescue-2d3f9371c20d3e90a544ccc814d485e3) 7 (Core)
由於序號從0開始,設定預設啟動項為1並重啟系統:
- sudo grub2-set-default 1
- reboot
重啟完成後,重新登入並重新執行uname命令來確認你是否使用了正確的核心:
- uname -r
得到如下結果則升級成功:
- 4.11.0-1.el7.elrepo.x86_64
開啟BBR
執行:
- echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
- echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
- sudo sysctl -p
完成後,分別執行如下命令來檢查 BBR 是否開啟成功:
- sudo sysctl net.ipv4.tcp_available_congestion_control
- # 輸出應為 net.ipv4.tcp_available_congestion_control = bbr cubic reno
- sudo sysctl -n net.ipv4.tcp_congestion_control
- # 輸出應為 bbr
- lsmod | grep bbr
- # 輸出應類似 tcp_bbr 16384 28
速度測試
- # 需先在 firewalld 中開啟 http 服務
- sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500