開啟TCP BBR擁塞控制演算法
阿新 • • 發佈:2018-12-22
什麼是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
然後重啟才能生效