すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:Alibaba Cloud Linux 2でTCP輻輳制御アルゴリズムBBRがネットワークパフォーマンスに影響を与える場合の対処方法

最終更新日:May 22, 2025

Alibaba Cloud Linux 2は、Reno、Bottleneck Bandwidth and Round-trip propagation time (BBR)、CUBICなどのカーネルTCP輻輳制御アルゴリズムをサポートしています。これらのアルゴリズムは、さまざまなネットワークシナリオで異なるパフォーマンスを発揮します。このトピックでは、BBRアルゴリズムがAlibaba Cloud Linux 2を実行するElastic Compute Service (ECS) インスタンスのネットワークパフォーマンスに影響を与える問題の原因と解決策について説明します。

問題の説明

BBRは、以下の構成を持つECSインスタンスのデフォルトのTCP輻輳制御アルゴリズムとして使用されます。インスタンスのCPU使用率とパケット転送速度が高い場合、BBRはそのネットワークパフォーマンスに影響を与え、Redis データベースのパフォーマンスを低下させるなどします。

  • イメージバージョン: aliyun_2_1903_64_20G_alibase_20190619.vhd 以前。

  • カーネルバージョン: kernel-4.19.48-14.al7 以前。

原因

BBRアルゴリズムがカーネルTCP輻輳制御に使用されているにもかかわらず、ネットワークインターフェースの qdiscfq スケジューラを使用していない場合、TCPスタックは内部の高解像度タイマー(hrtimer)にフォールバックします。これにより、接続ごとのCPU使用率が増加します。

解決策

  • BBRを別のアルゴリズムに置き換えます。

    インスタンス上のアプリケーションが内部ネットワークのみでサービスを提供している場合は、次のコマンドを実行してBBRをCUBICに置き換えます。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
  • ネットワークインターフェースのスケジューリングポリシーを変更します。

    インスタンス上のアプリケーションがインターネット経由でサービスを提供している場合は、次のコマンドを実行して、アプリケーションが使用するネットワークインターフェースのスケジューリングポリシーを tc-fq に変更します。

    <$DEV> を実際のネットワークインターフェース名に置き換えます。

    sudo tc qdisc add dev <$DEV> root fq
  • tc-fq スケジューリングポリシーを使用してCPU使用率を削減します。

  • インスタンスのカーネルを最新バージョンにアップグレードします。

    警告
    • カーネルのアップグレードは、互換性と安定性の問題を引き起こす可能性があります。 Alibaba Cloud Linux 2のリリースノート のカーネルの機能を確認し、カーネルバージョンをアップグレードする際は注意してください。

    • 再起動操作によりインスタンスが一時的に停止し、実行中のサービスが中断され、データ損失につながる可能性があります。そのため、重要なインスタンスデータをバックアップしてから、オフピーク時にインスタンスを再起動してください。

    1. 最新のカーネルバージョンにアップグレードします。

      sudo yum update kernel
    2. 新しいカーネルバージョンを有効にするためにインスタンスを再起動します。

      sudo reboot