限時指定中國香港伺服器優惠: 输入 MIDYEARPROMO 享首兩個月半價,或輸入 JUNEPROMO 享首月半價。
Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 知識文檔

如何配置 BBR 加速以提升香港 CN2 伺服器吞吐量

發布日期:2026-06-16
設定 BBR 提升香港 CN2 伺服器吞吐量

如果你想提升 香港 CN2 伺服器的網路吞吐量,BBR 加速是一種現代化的解決方案,可以幫助你獲得更高速度和更低延遲。在 Linux 伺服器上,BBR 擁塞控制依靠頻寬和延遲估算,而不是丟包訊號,這對大頻寬–時延積路由尤為有利。許多亞太機房的使用者回報了以下好處:

  • 與 Cubic 等傳統演算法相比,有明顯的有效吞吐(goodput)提升

  • 在高延遲和高頻寬場景下,有時可提升高達 115% 的有效吞吐

  • 在高負載場景下仍能保持穩定表現

只要在配置過程中遵循最佳實務,你就能獲得平滑且持久的加速效果。

關鍵要點

  • BBR 加速透過估算頻寬和往返時間(RTT),而不是依賴丟包訊號,從而提升網路吞吐並降低延遲。

  • 啟用 BBR 前需確保 Linux 核心版本不低於 4.9。如有需要,可在 CentOS 中使用 ELRepo 等工具進行核心升級。

  • 透過 sysctl 指令將預設佇列演算法設定為「fq」,並將 TCP 擁塞控制設定為「bbr」,可獲得更佳效能。

  • 將 BBR 相關配置儲存到 /etc/sysctl.d/99-bbr.conf 中,並確保 BBR 模組開機自動載入,以實現持久生效。

  • 在啟用 BBR 前後使用 iperf3 和 ping 等工具測試網路效能,以比較吞吐量和延遲的改善情況。

BBR 擁塞控制概覽

什麼是 BBR 擁塞控制

你可以使用 BBR 來提升伺服器的網路效能。與 CUBIC 或 Reno 等傳統方法不同,這種擁塞控制演算法並不依賴丟包來判斷擁塞情況。BBR 擁塞控制會估算瓶頸頻寬和往返傳播時間,透過量測可用頻寬和最小往返時間(RTT),建立一個網路模型。你會受益於這種作法,因為 BBR 會根據量測結果動態調整發送節奏(pacing rate)和擁塞視窗,從而幫助你在保持較低延遲的同時獲得更優的吞吐量。

注意:BBR 加速主要依賴兩個關鍵參數——發送節奏(pacing rate)和擁塞視窗(CWND)——來控制伺服器發送資料的速度。這種方式可以降低擁塞,並保持較小的佇列長度。

在 TCP BBR 中,你可以看到多項有助於提升吞吐量的關鍵特性:

  • 頻寬估算:透過分析封包的傳輸速率來量測可用頻寬。

  • RTT 估算:維護最小與基準 RTT,並據此調整發送節奏,從而降低延遲。

  • 瓶頸路由偵測:利用探測與 RTT 回饋識別真正的瓶頸鏈路。

  • 擁塞視窗管理:根據 pacing 增益與探測結果調整轉發速率。

  • 低延遲運作:保持佇列長度儘可能小,從而進一步降低延遲。

為什麼在香港 CN2 伺服器上使用 BBR 加速

香港 CN2 伺服器面臨一些獨特的網路環境挑戰。本地存取速度往往可以達到 1Gbps,但國際頻寬卻可能被限制在 20Mbps 左右。路由繞行相當常見,並且只有中國移動提供直連回程路由。這些問題會導致更高的延遲並限制吞吐量。

透過部署 BBR 加速,你可以正面應對這些挑戰。藉由這套擁塞控制演算法,你可以針對本地與國際使用者來優化伺服器效能。BBR 有助於你突破鏈路瓶頸、減少延遲。同時,你也可以優化 qdisc(佇列排程)設定,以進一步提升網路效率。當你啟用 BBR 時,你的香港 CN2 伺服器會變得更加穩定、回應更快。

Linux 環境下啟用 BBR 加速的前置條件

核心版本要求

在啟用 BBR 之前,你必須先檢查 Linux 核心版本。該擁塞控制演算法要求核心版本不低於 4.9。多數現代發行版(如 CentOS 7、CentOS 8、CentOS Stream、AlmaLinux 和 Rocky Linux)都已滿足這一要求。你可以使用以下指令查看目前核心版本:

uname -r

如果目前核心版本低於 4.9,就需要進行升級。CentOS 使用者通常會借助 ELRepo 軟體庫來更新核心;AlmaLinux 和 Rocky Linux 通常預設提供較新的核心。在升級核心之前,你應當先備份好重要資料。Linux 核心版本決定了你是否可以使用 BBR 作為擁塞控制演算法。

提示:你可以透過閱讀發行版官方文件來確認相容性。CentOS、AlmaLinux 和 Rocky Linux 都提供核心升級的相關指南。

準備 Linux 伺服器環境

在啟用 BBR 加速之前,你需要先對 Linux 伺服器進行一些準備工作。首先更新系統套件。在 CentOS 上可以使用如下指令:

sudo yum update -y

接著,確認目前核心是否支援公平佇列(fair queueing)封包排程器。該排程器能夠優化封包處理,並與 BBR 搭配良好。你可以使用以下指令查看目前預設佇列排程器:

sysctl net.core.default_qdisc

為了獲得最佳效果,你應該將預設佇列排程器設定為 fq。可使用 sysctl 指令進行設定:

sysctl -w net.core.default_qdisc=fq

你還需要透過 sysctl 指定 BBR 作為 TCP 擁塞控制演算法。將 TCP 擁塞控制設定為 bbr

sysctl -w net.ipv4.tcp_congestion_control=bbr

隨後,你應將上述 sysctl 設定寫入 /etc/sysctl.conf 或專用設定檔中,以確保伺服器重新啟動後 BBR 仍然生效。你還需要檢查封包處理行為,確認伺服器已經使用正確的佇列排程器與擁塞控制演算法。

注意:修改 sysctl 設定後一定要對網路進行測試。你可以使用 ping 或 iperf3 檢查丟包率與延遲。

分步配置 BBR 加速

檢查 Linux 核心版本

在開始配置 BBR 加速前,你必須先檢查核心版本。核心版本決定伺服器是否支援該擁塞控制演算法。可以透過以下簡單指令取得目前核心版本:

  • 執行 uname -r 顯示目前核心版本。

  • 在系統重新啟動後,再次執行 uname -r,確認最新核心已生效。

如果核心版本高於 4.9,就可以繼續下一步;否則需要先進行升級。在 CentOS 上,你可以按如下步驟操作:

  1. 匯入 ELRepo GPG 金鑰並安裝軟體庫:

    sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
    
  2. 安裝最新主線核心:

    sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
    
  3. 將新核心設定為預設開機項目:

    sudo grub2-set-default 0
    
  4. 重新產生 GRUB 設定:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  5. 重新啟動伺服器:

    sudo reboot
    
  6. 重新啟動後再次驗證核心版本:

    uname -r
    

你應當看到一個高於 4.9 的版本號,這表示伺服器已為 BBR 加速做好準備。

啟用 BBR 加速

要啟用 BBR 加速,需要設定正確的 sysctl 參數。這些參數控制伺服器如何處理網路流量。你需要編輯 sysctl 設定檔:開啟 /etc/sysctl.conf,或在 /etc/sysctl.d/99-bbr.conf 建立一個新檔案,並寫入如下內容:

參數

取值

net.core.default_qdisc

fq

net.ipv4.tcp_congestion_control

bbr

儲存檔案後,套用設定:

sudo sysctl --system

你也可以使用 sudo sysctl -p 來重新載入設定。這些變更會啟用 BBR,並將網路佇列排程器設定為公平佇列(fq),幫助你優化伺服器的吞吐量和延遲表現。

提示:你可以透過 sudo modprobe tcp_bbr 手動載入 BBR 模組,並使用 lsmod | grep bbr 檢查模組是否已成功載入。

讓 BBR 設定持久生效

你需要確保 BBR 設定能夠在重新啟動後自動生效。這一步可以讓 BBR 加速在每次系統啟動時都自動啟用。建議在 /etc/sysctl.d/ 下建立獨立的設定檔,而不是直接附加到 /etc/sysctl.conf,這樣較便於管理和排查重複條目。

  • 建立 /etc/sysctl.d/99-bbr.conf,內容如下:

    net.core.default_qdisc=fq
    net.ipv4.tcp_congestion_control=bbr
    
  • 確保 BBR 模組在啟動時自動載入,可建立 /etc/modules-load.d/bbr.conf 檔案:

    tcp_bbr
    
  • 如果該模組載入檔案不存在,可執行:

    echo 'tcp_bbr' | sudo tee /etc/modules-load.d/bbr.conf
    

然後套用新的 sysctl 設定:

sudo sysctl --system

注意:使用獨立的 sysctl 設定檔,便於你在不同 Linux 發行版中快速稽核、重用或移除 BBR 加速設定。

驗證 BBR 是否已啟用

接下來,你需要確認伺服器是否已經成功啟用 BBR。可以使用多條指令檢查目前的擁塞控制演算法和佇列排程方式,並確認 BBR 是否正在管理網路連線。

指令

用途

sudo sysctl net.ipv4.tcp_congestion_control

檢查目前使用的擁塞控制演算法

sudo sysctl net.core.default_qdisc

確認預設佇列排程器是否為 Fair Queue

lsmod

grep bbr

ss -ti

grep -i bbr

你預期會看到類似如下的結果:

指令

預期輸出

sysctl net.ipv4.tcp_congestion_control

net.ipv4.tcp_congestion_control = bbr

lsmod

grep bbr

ss -tin

在擁塞控制欄位中查看是否包含 bbr

說明:如果在擁塞控制輸出中看到 bbr,並確認模組已載入,就表示伺服器已經在使用 BBR 加速。此時你便可以享受更高的網路吞吐和更低的延遲。

透過以上步驟,你就完成了在香港 CN2 伺服器上配置 BBR 加速。只要遵循這些最佳實務,就能獲得持久而可靠的網路效能。

基準測試與吞吐量優化

使用 iperf3、ping、curl 測試效能

你需要量化 BBR 對伺服器效能帶來的影響。可以從 iperf3pingcurl 等工具入手,在啟用 BBR 前後分別測試網路吞吐、延遲和丟包情況。

  • 使用 iperf3 測試香港 CN2 伺服器與遠端客戶端之間的吞吐率:在伺服器上執行 iperf3 -s,在客戶端執行 iperf3 -c <server_ip>

  • 使用 ping 量測往返時間與丟包率:執行 ping <destination_ip>,觀察平均延遲和丟包情況。

  • 使用 curl -o /dev/null -s -w "%{time_total}\n" <url> 測試下載速度和總傳輸時間。

提示:建議多次重複測試以獲得更穩定的數據。將啟用 BBR 之前與啟用後得到的結果進行比較,可以直觀看到網路速度和延遲改善情況。

調整網路參數以獲取最佳效果

你還可以透過進一步調整網路參數,來在高延遲的國際路由上榨出 BBR 的最大效能潛力。參考下面這些步驟,可以實現更高的吞吐量:

  1. 計算頻寬–時延積(BDP)。首先使用 ping 量測 RTT,然後乘以頻寬。例如,在 100 Mbps 連線、80ms RTT 的情況下,BDP 約為 1 MB。建議將緩衝區大小設定為 BDP 的兩倍以上,以預留空間。

  2. 套用適合廣域網路的 TCP 設定。透過調整 net.core.rmem_maxnet.core.wmem_max 提高 Socket 緩衝區上限,並透過 net.ipv4.tcp_window_scaling = 1 啟用視窗擴展。

  3. 透過設定 net.ipv4.tcp_slow_start_after_idle = 0 關閉「閒置後慢啟動」,避免連線在閒置一段時間之後效能驟降。

  4. 優化 Keepalive 設定,用於更快偵測失效連線。可設定 net.ipv4.tcp_keepalive_time = 300net.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 10

  5. 使用 tc qdisc 模擬延遲並測試廣域網效能,然後透過 iperf3 比較 CUBIC 與 BBR 的吞吐表現。

在丟包較為明顯的廣域連線上,你通常會看到 BBR 相比 CUBIC 能帶來 2–5 倍的吞吐提升,這是因為 BBR 即使在存在丟包和高延遲的環境下仍能維持高效能。這些設定可以幫助你在降低丟包率的同時提升網路吞吐,使伺服器更適合面向國際使用者的業務。

注意:放大 TCP 視窗大小,並為 HTTP/2 等關鍵流量設定更高優先權,也有助於進一步提升 Web 應用的整體吞吐與體驗。

故障排查與自動化

Linux 上使用 BBR 常見問題

在啟用 BBR 的過程中,你可能會遇到一些常見問題。事先了解這些問題及其解決方案,可以幫助你快速回復並維持最佳效能。下面是最常見的幾類問題及對應解決思路:

  1. 佇列排程器(qdisc)設定錯誤
    你必須將佇列排程器設定為 fq,BBR 才能完全發揮作用。如果使用了其他排程模式,BBR 的吞吐提升可能會大打折扣。可以透過以下指令設定預設佇列排程器:

    sudo sysctl -w net.core.default_qdisc=fq
    

    提示:每次修改完設定後都建議檢查目前佇列排程器,可使用 sysctl net.core.default_qdisc 核實。

  2. 緩衝區上限過低
    如果你希望獲得更高的吞吐量,就需要放大 TCP 緩衝區上限。緩衝區過小會限制 BBR 對資料流進行最佳化的能力。可以透過如下 sysctl 指令調整緩衝區大小:

    sudo sysctl -w net.core.rmem_max=16777216
    sudo sysctl -w net.core.wmem_max=16777216
    

    說明:更大的緩衝區有助於 BBR 處理更多資料,從而降低丟包率。

  3. 網路瓶頸存在於其他鏈路或硬體
    你還需要檢查實體網路是否存在瓶頸。BBR 主要優化 TCP 層面的傳輸,並不能修復硬體或基礎建設上的限制。請檢查網路線、交換器以及上游頻寬,確保不會對伺服器的流量形成硬性阻塞。

問題

解決方案

佇列排程器設定錯誤

使用 sysctl 將預設 qdisc 設定為 fq

緩衝區上限過低

放大 TCP 緩衝區上限

其他鏈路或硬體出現瓶頸

檢查實體網路與基礎建設

自動化 BBR 配置

你可以透過自動化腳本的方式配置 BBR,從而節省時間並降低人為設定錯誤的風險。自動化還能確保在系統重新啟動或更新之後,相關設定依然保持一致。可以建立一個腳本,將所有必需的 sysctl 參數與模組載入步驟統一執行。

下面是一個簡單的 Bash 範例腳本:

#!/bin/bash
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo modprobe tcp_bbr

注意:你可以將此腳本放在 /usr/local/bin/,並透過 cron 排程執行,或直接將相關設定寫入 /etc/sysctl.d/99-bbr.conf 以實現持久化設定。

你也可以使用 Ansible 或 Puppet 等設定管理工具,在多台伺服器上集中下發 BBR 設定。自動化不僅能維持網路設定的一致性,還能顯著減少手動維護工作量。

當你在香港 CN2 伺服器上啟用 BBR 加速後,將會獲得更快、更可靠的網路表現。為了持續保持最佳狀態,建議你遵循以下作法:

  • 適度放大網路緩衝區,並啟用 TCP 視窗擴展功能。

  • 使用 sudo sysctl -psudo sysctl --system 讓設定即時生效。

  • 用真實業務流量與測試工具對 BBR 效果進行驗證與監控。

  • 定期更新 Linux 系統與核心,以保持相容性與安全性。

只要持續監控網路表現並及時排查問題,你就能長期保持 BBR 帶來的效能優勢。

常見問題(FAQ)

是否可以在任意 Linux 發行版上啟用 BBR?

只要核心版本不低於 4.9,你就可以在多數現代 Linux 發行版上啟用 BBR。你可以透過 uname -r 檢查相容性,如有需要則先升級核心。

BBR 是否能提升所有類型網路的效能?

BBR 在高時延、高頻寬連線上效果最為顯著;在本地、低延遲網路中,效能提升可能並不十分明顯。

提示:建議在啟用 BBR 前後分別測試網路,以定量評估效能差異。

如何檢查 BBR 是否已經啟用?

你可以執行如下指令進行驗證:

sysctl net.ipv4.tcp_congestion_control

如果輸出中顯示 bbr,則表示 BBR 已成功啟用。

BBR 設定是否會在重新啟動後保持有效?

如果你已將 BBR 相關設定寫入 /etc/sysctl.d/99-bbr.conf,那麼這些設定會在每次系統啟動後自動載入並生效。

設定項

設定檔位置

BBR 設定

/etc/sysctl.d/99-bbr.conf

是否可以在多台伺服器上自動化部署 BBR?

你可以使用腳本或 Ansible 等工具在多台伺服器上自動化部署 BBR 設定,這樣可以節省大量時間並確保設定一致。

注意:自動化部署不僅能減少手動操作失誤,還能顯著加快上線和擴容速度。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Skype