Linux kernel 4.9及以上開啟TCP BBR擁塞算法
BBR 目的是要盡量跑滿帶寬, 並且盡量不要有排隊的情況, 效果並不比速銳差
Linux kernel 4.9+ 已支持 tcp_bbr 下面簡單講述基於KVM架構VPS如何開啟
安裝Linux kernel 4.9以上的版本
一般安裝最新版本內核
Debian 8+ / Ubuntu 14.04
- 下載最新內核
# wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.12/linux-image-4.14.12-041412-generic_4.14.12-041412.201801051649_amd64.deb
- 安裝內核
# dpkg -i linux-image-4.*.deb
- 刪除舊版內核(可選)
# dpkg -l | grep linux-image # apt-get purge 舊內核
- 更新grub並重啟服務器
# update-grub
# reboot
Ubuntu16.04
- 安裝 Hardware Enablement Stack (HWE),自動更新內核
# apt install --install-recommends linux-generic-hwe-16.04
- 刪除舊版內核(可選)
# apt autoremove
- 重啟服務器以啟用最新內核
# reboot
CentOS6.x
- 啟用elrepo源並安裝kernel-ml
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm # yum --enablerepo=elrepo-kernel install kernel-ml -y
- 檢查內核是否已經安裝
# rpm -qa | grep kernel
- 更新grub並重啟服務器
# sed -i 's:default=.*:default=0:g' /etc/grub.conf # reboot
CentOS7.x
- 啟用elrepo源並安裝kernel-ml
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # yum --enablerepo=elrepo-kernel install kernel-ml -y
- 檢查內核是否已經安裝
# rpm -qa | grep kernel
- 更新grub2.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg
- 重啟服務器
# reboot
檢查內核版本
通過uname -r命令檢查內核版本是否大於4.9
# uname -r
啟用BBR擁塞算法
- 加載內核模塊
# modprobe tcp_bbr # echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
- 修改內核參數
# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf # echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
# sysctl -p
- 檢查BBR是否已經開啟
# lsmod | grep bbr # sysctl net.ipv4.tcp_available_congestion_control # sysctl net.ipv4.tcp_congestion_control
如結果都有bbr,則表示已經開啟BBR算法