1. 程式人生 > 其它 >CentOS 7 開啟 BBR 加速

CentOS 7 開啟 BBR 加速

Google 在 2016年9月份開源了他們的優化網路擁堵演算法BBR,最新版本的 Linux核心(4.9-rc8)中已經集成了該演算法。

對於TCP單邊加速,並非所有人都很熟悉,不過有另外一個大名鼎鼎的商業軟體“銳速”,相信很多人都清楚。特別是對於使用國外伺服器或者VPS的人來說,效果更佳。

網上有很多在 Debian 和 Ubuntu 系統下啟用 BBR 的教程,我就不貼上了,我自己一直用的是 CentOS,本文介紹一下在 64位 CentOS 7 系統下開啟BBR的方法。

升級核心

第一步首先是升級核心到支援BBR的版本:

#匯入公鑰
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • CentOS 7
#安裝elrepo源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  • CentOS 6
#安裝elrepo源
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
#安裝4.9.0以上的核心
yum --enablerepo=elrepo-kernel install kernel-ml -y

# 確認是否成功安裝新版核心
rpm -qa | grep kernel

如果安裝成功,你應該會看到 kernel-ml-4.*.*-*.el7.elrepo.x86_64

這樣的條目:

kernel-tools-3.10.0-514.el7.x86_64
kernel-ml-4.12.4-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-514.el7.x86_64
kernel-3.10.0-514.el7.x86_64

調整GRUB啟動順序

在安裝好新版本核心以後,要先用新安裝的核心引導系統看看能否正常啟動,下面是直接調整 GRUB2 啟動順序的命令:

# 檢視可用的啟動項
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d '

執行完這條命令以後,能看到多個可以引導的系統,比如我的是:

CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-d4d0adfea8e944e5b8019ed1aa3c9e16) 7 (Core)

不管有多少個,從上往下,記住要引導的項的序號(從0開始計數)即可,比如上面的例子,我要使用第一項 CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core) 來引導,序號是 0

# 設定預設引導項
grub2-set-default 0

# 重啟系統
reboot

修改sysctl 開啟 BBR

重啟系統之後,通過 uname -r 或者其它命令可以看到我們的核心已經是新版核心了,接下來開啟 BBR

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

# 載入 /etc/sysctl.conf 檔案中的引數並顯示,主要看看有沒有報錯的設定(顯示的結果與你的配置檔案內容有關)
sysctl -p

# 驗證 bbr 是否開啟,如果成功,應該會看到 net.ipv4.tcp_congestion_control = bbr
sysctl net.ipv4.tcp_available_congestion_control

# 依然是驗證,如果成功,應該會看到類似 tcp_bbr    16384    3 這樣的文字
lsmod | grep bbr

以上每一步最好都根據註釋中的說明仔細檢查一下是否順利,然後再進行下一步,如果都成功的話,到這裡已經成功開啟BBR演算法。可以在你的伺服器上放一個大檔案,然後用瀏覽器下載一下看看速度是否有提升。

我的洛杉磯VPS加速以後,用Chrome下載的速度從500K/s左右提升到了3.3M/s左右。