TCP BBRでLinuxサーバのインターネット速度を向上させる方法


BBR ボトルネック帯域幅とRTT )は、Googleのソフトウェアエンジニアによって書かれた比較的新しい輻輳制御アルゴリズムです。これは、GoogleがTCPプロトコルを使用してインターネットを高速化しようとしているという最新の解決策であり、インターネットの主力製品です。

BBR の主な目的は、ネットワークの利用率を高めてキューを減らすことです(その結果、ネットワークの動作が遅くなります)。サーバーに展開する必要がありますが、ネットワークやクライアント側には展開しないでください。 Linuxでは、BBRはカーネルバージョン 4.9 以上で実装されています。

この記事では、 TCP BBR について簡単に説明した後、LinuxでTCP BBRの輻輳制御を使用してLinuxサーバーのインターネット速度を向上させる方法について説明します。

Linuxカーネルのバージョン4.9以上がインストールされていて、これらのオプションを使ってコンパイルされている必要があります(モジュールとして、または組み込まれています)。

  • CONFIG_TCP_CONG_BBR
  • CONFIG_NET_SCH_FQ
  • CONFIG_NET_SCH_FQ_CODEL

Linuxでカーネルモジュールをチェックする方法

上記のオプションがカーネルでコンパイルされているかどうかを確認するには、次のコマンドを実行します。

# cat /boot/config-$(uname -r) | grep 'CONFIG_TCP_CONG_BBR'
# cat /boot/config-$(uname -r) | grep 'CONFIG_NET_SCH_FQ'

カーネルをアップデートするには、以下のガイドをチェックしてください。

  1. How to Upgrade Kernel to Latest Version in Ubuntu
  2. How to Install or Upgrade to Latest Kernel Version in CentOS 7

LinuxでTCP BBR輻輳制御を有効にする

BBR はペーシングと効果的に連携するので、トラフィックのペーシングには fq qdisc クラスレスパケットスケジューラと併用する必要があります。 fq qdisc の詳細を調べるには、次のように入力してください。

# man tc-fq

BBR を正しく理解していれば、サーバーで設定できます。好きなエディタを使って /etc/sysctl.conf ファイルを開きます。

# vi /etc/sysctl.conf

ファイルの最後に以下のオプションを追加してください。

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

ファイルを保存して閉じます。次に、 sysctl コマンドを使用してシステムの変更を有効にします。

# sysctl --system

スクリーンショットから、適切な値でオプションが追加されたことがわかります。

TCP BBR輻輳制御設定のテスト

必要な設定を行った後、それが実際に機能しているかどうかをテストできます。 Speedtest-CLI など、帯域幅の速度を測定するためのツールがいくつかあります。

  1. How to Test Your Internet Speed Bidirectionally from Command Line Using ‘Speedtest-CLI’ Tool

その他のツールには、bmon(bandwith monitor)、nload、Wgetコマンドベースのファイルダウンローダ、および cURL があり、これらすべてにネットワーク帯域幅が表示されます。あなたはテストのためにそれらを使うことができます。

BBR Githubレポジトリ:https://github.com/google/bbr

また、以下の関連記事を読むのが好きかもしれません。

  1. Setup Your Own “Speedtest Mini Server” to Test Internet Bandwidth Speed
  2. How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle
  3. How to Change Kernel Runtime Parameters in a Persistent and Non-Persistent Way

この記事では、LinuxでTCP BBR輻輳制御を使用してLinuxサーバーのインターネット速度を向上させる方法を説明しました。さまざまなシナリオで包括的にテストし、下記のコメントフォームから重要なフィードバックをお寄せください。