在 Debian 8 Jessie 中升級 Linux Kernel 到 4.9 以上,支援 Google BBR

 

Pre-processing

稼働しているアプリケーションを停止
Hyper-V 上の仮想マシンにチェックポイントを作成
カーネルのバージョンを確認

# uname -a

Linux debian8 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

 

 

 

Update sources.list

パッケージの取得元に backports リポジトリを追加します。

# sudo vi /etc/apt/sources.list

deb http://http.debian.net/debian jessie-backports main
deb-src http://http.debian.net/debian jessie-backports main

 

 

Update package

パッケージリストを更新し、各種パッケージ(ディストリビューション)もついでに最新にしておきます。

# sudo apt-get update
# sudo apt-get dist-upgrade

 

 

Install the kernel

最新版のカーネルをインストールします。

# sudo apt-cache search linux-image
linux-headers-3.16.0-4-amd64 – Linux 3.16.0-4-amd64 用ヘッダファイル
linux-image-3.16.0-4-amd64 – 64 ビット PC 用 Linux 3.16
linux-image-3.16.0-4-amd64-dbg – Linux 3.16.0-4-amd64 のデバッグシンボル
linux-image-amd64 – 64 ビットマシン用 Linux (メタパッケージ)
linux-image-amd64-dbg – Linux amd64 構成向けデバッグシンボル (メタパッケージ)
linux-headers-4.2.0-0.bpo.1-amd64 – Header files for Linux 4.2.0-0.bpo.1-amd64
linux-image-4.2.0-0.bpo.1-amd64 – Linux 4.2 for 64-bit PCs
linux-image-4.2.0-0.bpo.1-amd64-dbg – Debugging symbols for Linux 4.2.0-0.bpo.1-amd64
# sudo apt-get install -t jessie-backports linux-image-amd64

 

 

Clean-up and reboot

インストールに使用したアーカイブファイルを削除し、OS を再起動します。

# sudo apt-get clean
# sudo reboot

 

 

Check the kernel version

カーネルのバージョンを確認します。

# uname -a

Linux debian8 4.2.0-0.bpo.1-amd64 #1 SMP Debian 4.2.6-1~bpo8+1 (2015-11-18) x86_64 GNU/Linux

 

 

https://gist.github.com/minazou67/4bf63b463347558f3f01

 

============================================

 

開啟TCP BBR

只要Linux 發行版的Kernel 即內核版本大於等於4.9 即可開啟,開啟方法是通用的,如何升級至Kernel 將在下面介紹。

 

 

修改系統變量:


echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

 

保存生效
sysctl -p
執行


sysctl net.ipv4.tcp_available_congestion_control

如果結果是這樣


”root@debian-512mb-sgp1-01:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

就開啟了。

行 lsmod | grep bbr,以檢測BBR是否開啟。