Pages

Thursday, 24 May 2018

Debian Ubuntu升级内核,开启TCP BBR,实现高效单边加速


谷歌为我们带来了 新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT)。 目前在 Linux Kernel 4.9 中加入了该算法,所以我们只要升级内核就可以了。TCP BBR 的目的就是要尽量跑满带宽,并且尽量不要有排队的情况。

1.查看当前系统内核:
uname -a

2.下载最新内核,最新内核查看这里-http://kernel.ubuntu.com/~kernel-ppa/mainline/

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb
   
3.安装内核:
dpkg -i linux-image-4.9*.deb

4.查看已经安装的内核:
dpkg -l|grep linux-image
会反馈如下:
ii linux-image-3.16.0-4-amd64 3.16.7-ckt25-1 amd64 Linux 3.16 for 64-bit PCs
ii linux-image-4.9.0-040900-generic 4.9.0-040900.201612111631 amd64 Linux kernel image for version 4.9.0 on 64 bit x86 SMP
ii linux-image-amd64 3.16+63 amd64 Linux for 64-bit PCs (meta-package)

5.卸载旧内核:
apt-get purge 旧内核
   
也可以不卸载内核,Ubuntu跟Debian都会默认4.9启动的。

6.更新 grub 系统引导文件并重启:
update-grub
reboot

然后我们可以查看一下目前的内核版本:
root@xxx:~# uname -a
Linux longsays 4.9.0-040900-generic #201612111631 SMP Sun Dec 11 21:33:00 UTC 2016 x86_64 GNU/Linux
可见已经是最新的了。

开启 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@xxx:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
就开启了。
然后执行下面的命令,看到有 tcp_bbr 模块即说明BBR已启动。
lsmod | grep bbr

关闭 TCP BBR:
sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p

   执行完上面的代码,就使用reboot重启VPS后才能关闭bbr,重启后再用下面的查看bbr状态代码,查看是否关闭了。

No comments:

Post a Comment