全部產品
Search
文件中心

Alibaba Cloud Linux:Alibaba Cloud Linux 2系統中TCP擁塞控制演算法BBR對網路效能有影響,如何處理?

更新時間:May 09, 2025

Alibaba Cloud Linux 2系統的核心TCP擁塞控制目前支援Reno、BBR和Cubic三種演算法,在不同的網路情境下,這些演算法的控制效能將會有所差異。本文將介紹Alibaba Cloud Linux 2系統中TCP擁塞控制演算法BBR(Bottleneck Bandwidth and RTT)對網路效能的影響原因及相應的解決方案。

問題描述

符合下列條件的ECS執行個體中,預設的TCP擁塞控制演算法BBR在CPU使用率高和網路資料包(PPS)較高的情況下,對網路效能產生影響。例如,Redis資料庫的效能降低。

  • 鏡像:aliyun_2_1903_64_20G_alibase_20190619.vhd及之前版本的鏡像。

  • 核心:kernel-4.19.48-14.al7及之前版本的核心。

問題原因

使用核心TCP擁塞控制預設BBR演算法時網卡qdisc沒有使用fq調度器,TCP協議棧將採用其內部實現的高精度的計時器(hrtimer),每個串連的高精度計時器將額外增加CPU的消耗。

解決方案

您可以根據業務的實際情況選擇以下方案解決問題。

  • 修改TCP擁塞控制演算法。

    如果ECS執行個體中的應用僅對內網提供服務,建議參考下列命令,修改TCP擁塞控制演算法為cubic。因為內網環境頻寬高、時延低。

    sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
    echo "net.ipv4.tcp_congestion_control=cubic" | sudo tee -a /etc/sysctl.d/50-aliyun.conf
  • 修改相應網卡的調度策略。

    如果ECS執行個體中的應用對外提供服務,建議繼續使用BBR演算法,但需執行以下命令,將相應網卡的調度策略修改為tc-fq

    <$DEV>需替換為要調整的網卡名稱。

    sudo tc qdisc add dev <$DEV> root fq
  • 在使用BBR演算法時,不建議使用其他非tc-fq的調度策略,因其會佔用額外的CPU資源。

  • 升級ECS執行個體的核心至最新的版本,徹底解決該問題。

    警告
    • 升級核心可能會出現相容性和穩定性問題,建議您查看Alibaba Cloud Linux 2鏡像發布記錄瞭解具體核心功能後謹慎進行操作。

    • 重啟執行個體將導致您的執行個體暫停運行,這可能引發業務中斷和資料丟失。因此,建議您在執行此操作之前備份關鍵資料,並選擇在非業務高峰期進行。

    1. 執行以下命令,升級核心到最新版本。

      sudo yum update kernel
    2. 執行以下命令,重啟執行個體使配置生效。

      sudo reboot