CentOS7 開啓Google BBR加速

BBR 是 Google 提出的一種新型擁塞控制算法,能夠使 Linux 服務器顯著地提升吞吐量和減小 TCP 鏈接的延遲。git

BBR解決了兩個問題:github

再有必定丟包率的網絡鏈路上充分利用帶寬。很是適合高延遲,高帶寬的網絡鏈路。算法

下降網絡鏈路上的buffer佔用率,從而下降延遲。很是適合慢速接入網絡的用戶。centos

項目地址:https://github.com/google/bbr服務器

升級內核

開啓 BBR 要求 4.10 以上版本 Linux 內核,可以使用以下命令查看當前內核版本:網絡

  1. uname -r

能夠獲得相似以下的結果:tcp

  1. 3.10.0-514.10.2.el7.x86_64

若是當前內核版本低於 4.10,可以使用 ELRepo 源更新:測試

  1. sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  2. sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  3. sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

安裝完成後,查看已安裝的內核:google

  1. rpm -qa | grep kernel

獲得結果以下:centos7

  1. kernel-3.10.0-123.el7.x86_64
  2. kernel-headers-3.10.0-514.16.1.el7.x86_64
  3. kernel-ml-4.11.0-1.el7.elrepo.x86_64
  4. kernel-tools-3.10.0-514.16.1.el7.x86_64
  5. kernel-3.10.0-514.16.1.el7.x86_64
  6. kernel-tools-libs-3.10.0-514.16.1.el7.x86_64

在輸出中看到 kernel-ml-4.11.0-1.el7.elrepo.x86_64 相似的內容,表示安裝成功。

修改grub2引導

執行:

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

會獲得以下結果:

  1. CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.11.0-1.el7.elrepo.x86_64)
  2. CentOS Linux (4.11.0-1.el7.elrepo.x86_64) 7 (Core)
  3. CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
  4. CentOS Linux (3.10.0-123.el7.x86_64) 7 (Core)
  5. CentOS Linux (0-rescue-2d3f9371c20d3e90a544ccc814d485e3) 7 (Core)

因爲序號從0開始,設置默認啓動項爲1並重啓系統:

  1. sudo grub2-set-default 1
  2. reboot

重啓完成後,從新登陸並從新運行uname命令來確認你是否使用了正確的內核:

  1. uname -r

獲得以下結果則升級成功:

  1. 4.11.0-1.el7.elrepo.x86_64

開啓BBR

執行:

  1. echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
  2. echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
  3. sudo sysctl -p

完成後,分別執行以下命令來檢查 BBR 是否開啓成功:

 
  1. sudo sysctl net.ipv4.tcp_available_congestion_control
  2. # 輸出應爲 net.ipv4.tcp_available_congestion_control = bbr cubic reno
  3. sudo sysctl -n net.ipv4.tcp_congestion_control
  4. # 輸出應爲 bbr
  5. lsmod | grep bbr
  6. # 輸出應相似 tcp_bbr  16384  28

速度測試

 
  1. # 需先在 firewalld 中開啓 http 服務
  2. sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500

訪問 http://[your-server-IP]/500mb.zip 來測試一下下載速度吧~

 

 

下面是一鍵開啓腳本:

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

驗證:sysctl net.ipv4.tcp_available_congestion_control

返回:net.ipv4.tcp_available_congestion_control = reno cubic bbr

相關文章
相關標籤/搜索