如何在CentOS 7上部署Google BBR 本文章搬運自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 【註:文章當時使用的內核版本是4.9.0 而目前是4.15.6(4.15版本高於4.9)】 步驟 1: 使用 ...
如何在CentOS 7上部署Google BBR
本文章搬運自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
【註:文章當時使用的內核版本是4.9.0 而目前是4.15.6(4.15版本高於4.9)】
步驟 1: 使用 Elrepo RPM 存儲庫升級內核
為了使用 BBR, 您需要將 CentOS 7 機器的內核升級到4.9.0以上。 您可以使用 Elrepo RPM 存儲庫輕鬆地完成該操作。
在升級之前, 您可以查看當前內核:
uname -r
此命令應輸出字元串, 類似於:
3.10.0-514.2. 2. El7 x86_64
如您所見, 當前內核是3.10.0。
安裝 ELRepo repo:
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
使用 ELRepo repo安裝4.9.0 內核:【當前安裝的是4.15.6】
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
確認結果:
rpm -qa | grep kernel
如果安裝成功, 您應該在輸出列表中看到kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-ml-4.9.0-1.el7.elrepo.x86_64 kernel-3.10.0-514.el7.x86_64 kernel-tools-libs-3.10.0-514.2.2.el7.x86_64 kernel-tools-3.10.0-514.2.2.el7.x86_64 kernel-3.10.0-514.2.2.el7.x86_64
【沒有看到沒有關係】
現在, 您需要通過設置預設的 GRUB2 啟動項來啟用4.9.0 內核。
顯示 Grub2 菜單中的所有條目:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
結果應類似於:
CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64) CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)
由於行計數從0開始, 並且4.9.0 內核項位於第二行上, 因此將預設啟動項設置為 1:
sudo grub2-set-default 1
註:我得到的結果與示例不同,如下
CentOS Linux (4.15.6-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue 186e68c8657e4bfc8df5044d08b50231 (3.10.0-693.17.1.el7.x86_64)
CentOS Linux (3.10.0-693.17.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)
此時的CentOS Linux (4.15.6-1.el7.elrepo.x86_64) 7 (Core)位於第一條 所以我輸入的應該是
sudo grub2-set-default 0
重新啟動系統:
sudo shutdown -r now
當伺服器重新聯機時, 重新登錄並重新運行 uname 命令以確認您使用的是正確的內核:
uname -r
您應該看到如下結果:
4.9.0-1.el7.elrepo.x86_64
(現在應該是)
4.15.6-1.el7.elrepo.x86_64
步驟 2: 啟用 BBR
為了啟用 BBR 演算法, 您需要修改 Sysctl 配置, 如下所示:
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 0
步驟 3 (可選): 測試網路性能增強
為了測試 BBR 的網路性能增強, 您可以在 Web 伺服器目錄中創建一個文件以供下載, 然後, 從台式電腦上的 Web 瀏覽器測試下載速度。
sudo yum install httpd -y sudo systemctl start httpd.service sudo firewall-cmd --zone=public --permanent --add-service=http sudo firewall-cmd --reload cd /var/www/html sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500
最後, 從桌面電腦上的 Web 瀏覽器訪問 URL http://[your-server-IP]/500mb.zip , 然後評估執行下載速度。
以上。 謝謝你的閱讀。