BBR 是 Google 提出的一種新型擁塞控制算法,可使 Linux 服務器顯著地提升吞吐量和減小 TCP 鏈接的延遲。javascript
https://github.com/google/bbrphp
開啓 BBR 要求 4.10 以上版本 Linux 內核,可以使用以下命令查看當前內核版本css
uname -r
3.10.0-514.10.2.el7.x86_64java
若是當前內核版本低於 4.10,可以使用 ELRepo 源更新:
http://elrepo.org/tiki/tiki-index.phpgit
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
要爲RHEL-安裝ELRepo 7,SL- 7或CentOS- 7:github
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm</font>
要爲RHEL-安裝ELRepo 6,SL- 6或CentOS- 6:算法
rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
要使用ELRepo的鏡像系統,請同時安裝yum-plugin-fastermirror。ruby
yum --enablerepo=elrepo-kernel install kernel-ml -y
安裝完成後,查看已安裝的內核:服務器
rpm -qa | grep kernel
kernel-tools-3.10.0-957.1.3.el7.x86_64
kernel-3.10.0-957.1.3.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.1.3.el7.x86_64
kernel-ml-4.20.0-1.el7.elrepo.x86_64curl
在輸出中看到相似kernel-ml-4.20.0-1.el7.elrepo.x86_64的內容,表示安裝成功。
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (4.20.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-40b6222317d24a7690053e4070fadddb) 7 (Core)
因爲序號從0開始,設置須要的內核爲啓動項
grub2-set-default 0 reboot
重啓完成後,從新登陸並從新運行uname命令來確認你是否使用了正確的內核:
uname -r
獲得以下結果則升級成功:
4.20.0-1.el7.elrepo.x86_64
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf sysctl -p
BBR腳本連接 https://raw.githubusercontent.com/teddysun/across/master/bbr.sh
curl -O https://raw.githubusercontent.com/teddysun/across/master/bbr.sh && sh bbr.sh
查看能夠用的擁塞控制算法
sysctl net.ipv4.tcp_available_congestion_control
獲得結果
net.ipv4.tcp_available_congestion_control = reno cubic bbr
查看如今使用的擁塞控制算法
sysctl net.ipv4.tcp_congestion_control
獲得結果
net.ipv4.tcp_congestion_control = bbr
檢查BBR是否正常運行
lsmod | grep tcp_bbr
tcp_bbr 20480 1
建立一個文件,搭建http服務
dd if=/dev/zero of=500mb.zip bs=1024k count=500
訪問 http://[your-server-IP]/500mb.zip 來測試下載速度~