
BBRはGoogleがオープンソースで公開しているTCPネットワーク輻輳最適化アルゴリズムで、訪問者からサーバーへのアクセス速度を向上させることができます。特に海外サーバーの場合、bbrアルゴリズムを有効にすると、サイト最適化一定の役に立ちます。
ここではNaibaがCentOS7システムを使用して、新しいカーネル(BBRにはカーネル4.9以上が必要)をインストールし、BBRアクセラレーションを有効にする方法を説明します。
CentOS7に新しいカーネルをインストールする手順
まず、現在のサーバーのカーネルバージョンを確認します。
uname -sr
unameコマンドは、現在のシステム関連情報(カーネルバージョン、ハードウェアアーキテクチャ、ホスト名、OSタイプなど)を表示するために使用されます。
-a或--all:显示全部的信息; -m或--machine:显示电脑类型; -n或-nodename:显示在网络上的主机名称; -r或--release:显示操作系统的发行编号; -s或--sysname:显示操作系统名称; -v:显示操作系统的版本; -p或--processor:输出处理器类型或"unknown"; -i或--hardware-platform:输出硬件平台或"unknown"; -o或--operating-system:输出操作系统名称; --help:显示帮助; --version:显示版本信息。
BBRのカーネル要件は4.9+です。通常、上記のコマンドで表示されるカーネルバージョンは3.xです。
次にELRepoリポジトリを有効にします
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

次に、新しい安定版カーネルをインストールします。
yum --enablerepo=elrepo-kernel install kernel-ml -y
インストール完了後、以下のコマンドを使用してインストールが成功したかどうかを確認します。
rpm -qa | grep kernel
私の表示は以下の通りです:
kernel-3.10.0-862.14.4.el7.x86_64 kernel-ml-5.3.8-1.el7.elrepo.x86_64 kernel-3.10.0-1062.4.1.el7.x86_64 kernel-headers-3.10.0-1062.4.1.el7.x86_64 kernel-3.10.0-957.5.1.el7.x86_64 kernel-3.10.0-1062.1.2.el7.x86_64 kernel-tools-3.10.0-1062.4.1.el7.x86_64 kernel-tools-libs-3.10.0-1062.4.1.el7.x86_64 kernel-3.10.0-957.1.3.el7.x86_64
kernel-ml-5.3.8-1.el7.elrepo.x86_64がインストールされた新しいカーネルバージョンです(このチュートリアルを読んでいる時点でカーネルバージョンが変わっている可能性があるので、臨機応変に対応してください)
次に、システムの起動順序を設定する必要があります。以下のコマンドを使用します。
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
私の表示は以下の通りです:
CentOS Linux (5.3.8-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-862.14.4.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-618ca2de6e204efbb013b592564ef36a) 7 (Core)
最初に表示されるのはCentOS Linux (5.3.8-1.el7.elrepo.x86_64) 7 (Core)です。最初の行を0として、0、1、2、3と数え、新しいカーネルが何番目かを確認します。
次に以下のコマンドを入力します(コマンド例は1行目の場合)
sudo grub2-set-default 0
次にサーバーを再起動します。
reboot
再度カーネルバージョンを確認します。
uname -r
カーネルバージョンが4.9以上であることを確認します。この記事の更新時点では新しいバージョンは5.3.8で、インストール成功です。
カーネル設定を再構築
grub2-mkconfig -o /boot/grub2/grub.cfg
システムを再起動して確認し、問題なければ完了です。
CentOS7の新しいカーネルでBBRを有効にする
新しくインストールしたCentOS7で新しいカーネルを有効にするには、以下のコードをコピーして実行するだけです。
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
BBRを有効にするメリットは何ですか?
簡単に言うと、BBRを有効にすることでサイトのアクセス速度をある程度最適化できます。例えば、NaibaのノートはWordPressを使用しており、BBRによってWordPressサイトをある程度高速化できます。もちろん、Naibaは国内サーバーを使用しているため、BBRの効果はそれほど顕著ではありません。
BBRはGoogleがオープンソース化したTCPネットワーク輻輳最適化アルゴリズムです。TCP BBRは2つの問題の解決を目指しています:ある程度のパケットロスがあるネットワークリンクで帯域幅を最大限に活用すること。ネットワークリンク上のバッファ占有率を低減し、遅延を削減すること。TCP輻輳制御の目標は、ネットワーク上のボトルネックリンクの帯域幅を最大化することです。
オープンソースアドレス:https://github.com/google/bbr
BBRおよびBBR2ワンクリックパッケージ
BBR2とは何ですか?
BBR2は現在プレビュー版であり、BBRのアップグレードバージョンですが、まだ十分に成熟しておらず、本番環境での使用は推奨されません。
BBR2の詳細については、以下を参照してください:https://github.com/google/bbr/blob/v2alpha/README.md
また、READMEファイルにはBBR2の手動インストール手順が含まれていますので、ここではコピーしません。
bbr2ワンクリックパッケージ
警告:カーネル交換にはリスクが伴います。本スクリプトを使用した後に起動不能となり損害が生じても、一切の責任を負いかねます。
推奨システム:Debian 10 x86_64。理論上はDebian 8+、Ubuntu 16.04+をサポートします。
KVM仮想アーキテクチャのVPSにのみ適用可能です。OVZ、Xen、または専用サーバーの場合は試さないでください。
64ビット(x86_64)システムのみ対応。x86は非対応です。CentOSおよびその他のシステムはサポートされません。
BandwagonHostのDebian 8、9、10、Ubuntu 16.04、18.04でテスト済み(Ubuntu 14.04は失敗)。
以下の事業者のDebian 10システムでテスト済み:Oracle Public Cloud、DMIT、OLVPS、AlibabaCloud。
Debian 10でのインストール成功率は100%です。
CentOSシステムのユーザーは、bbrを使用するか、手動でbbr2をインストールすることをお勧めします。
wget --no-check-certificate -q -O bbr2.sh "https://raw.githubusercontent.com/yeyingorg/bbr2.sh/master/bbr2.sh" && chmod +x bbr2.sh && bash bbr2.sh auto
重要!BBR/ECNを有効/無効にした後は、システムを再起動してください。スクリプトにバグがあり、効果が発揮されなかったり、古いbbrなどのアクセラレーションと共存してしまう可能性があります。
BBRワンクリックパッケージ
bbrワンクリックパッケージは対応システムが多いですが、前提としてカーネルバージョンがbbrをサポートしている必要があります。カーネルバージョンが対応していない場合は、手動でカーネルを更新する必要があります。
対応システム:CentOS 6+、Debian 7+、Ubuntu 12+。
仮想化技術:OpenVZ以外(KVM、Xen、VMwareなど)。
メモリ要件:128MB以上。
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
bbr plusワンクリックパッケージ
bbr plusは、オリジナルのbbrをベースにパラメータ最適化を行ったもので、一部のマシンではオリジナルよりも高速化効果が優れています。
本記事で紹介するBBR Plusワンクリックインストールスクリプトは、ユーザーcx9208によるものです。BBR Plusの他に、オリジナルBBRワンクリックインストール、改造BBRワンクリックインストール、锐速(lotServer)ワンクリックインストールも統合された4-in-1バージョンで、4つのバージョンを切り替えて使用できます。
対応アーキテクチャ:KVM / Xen。OpenVZ(OVZ)は非対応。
対応システム:CentOS 7、Debian 8、Debian 9、Ubuntu 16.04、Ubuntu 18.04。
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh