1. 程式人生 > >開啟TCP BBR擁塞控制演算法

開啟TCP BBR擁塞控制演算法

什麼是BBR

  TCP BBR是谷歌出品的TCP擁塞控制演算法。TCP-BBR的目標就是最大化利用網路上瓶頸鍊路的頻寬,儘量跑滿頻寬,並且儘量不要有排隊的情況。BBR可以起到單邊加速TCP連線的效果。
  BBR演算法,Google已經提交到Linux主線並發表在ACM queue期刊上的TCP-BBR擁塞控制演算法。在新的linux核心上已經附帶了BBR,升級核心即可開啟。
  BBR解決了兩個問題:
  1.在有一定丟包率的網路鏈路上充分利用頻寬。非常適合高延遲,高頻寬的網路鏈路。
   2.降低網路鏈路上的buffer佔用率,從而降低延遲。非常適合慢速接入網路的使用者。
   因此我們可以利用BBR來在伺服器上做加速,來提高用SS代理是網路的連結速度。

安裝BBR

  BBR是內嵌在Linux核心中的,目前Linux Kernel 4.9已加入了該演算法,所以安裝新版本核心開啟BBR即可享用。下面將分系統介紹升級Linux核心的方法。

Debian/Ubuntu

下載核心
cd ~;mkdir linux49; cd linux49
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900-generic_4.9.0-040900.201612****631_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9
/linux-image-4.9.0-040900-generic_4.9.0-040900.201612****631_amd64.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900_4.9.0-040900.201612****631_all.deb
開始安裝:
dpkg -i *.deb

上面的適用於64位系統,其它可以自行下載Index of /~kernel-ppa/mainline/v4.9 對應版本。

刪除其餘核心
dpkg -l|grep linux-image 
apt-get remove linux-image-[Tab補全]
更新grub系統引導檔案並重啟
update-grub
重啟系統並檢視核心
reboot
uname -a

CentOS7

下載核心並安裝
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml  kernel-ml-devel -y
檢視核心是否安裝成功
rpm -qa | grep kernel
更新grub系統引導檔案並重啟
 egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
 grub2-set-default 0
 reboot

一鍵安裝指令碼

wget -O- https://github.com/txy-cs/TCP-BBR/blob/master/install_bbr_centos.sh | bash

開啟BBR

從剛安裝的核心啟動後,執行:

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

執行以下命令來測試是否開啟了BBR:

$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

$ lsmod | grep bbr
tcp_bbr                20480  0

如果想關閉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

然後重啟才能生效