xSky 实验室关注高性能计算,分布式系统/存储,大数据/机器学习/WebRTC
目录
  • 首页
  • 技术相关
  • 原创作品
  • 人工智能/机器学习
  • 系统与架构
  • 数据库/数据分析
  • 分布式系统/存储
  • 服务端开发
  • WEBRTC研究
  • 开发调试
  • 网络与安全
  • 常用工具
  • 杂七杂八

TCP BBR 安装方法 汇总

2017-04-08 07:56:22

这是2016年9月份才开源的一个优化网络拥堵的算法。

目前最新版本的Linux内核(4.9-rc8)中已经集成了该算法。

根据目前使用的情况反馈来看,能大幅度提升网速。


开源地址

https://github.com/google/bbr

 

安装方式

一、Debian8/Ubuntu14

下载最新内核,最新内核查看这里

 
1
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9-rc8/linux-image-4.9.0-040900rc8-generic_4.9.0-040900rc8.201612051443_amd64.deb

安装内核

 
1
dpkg -i linux-image-4.9.0*.deb

删除其余内核

 
1
2
dpkg -l|grep linux-image
sudo apt-get remove linux-image-[Tab补全] #删旧内核,在这里,就是把第一个3.13的删掉

更新 grub 系统引导文件并重启

 
1
2
update-grub
reboot

开启bbr

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

保存生效

 
1
sysctl -p

执行

 
1
sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr
执行

 
1
lsmod | grep bbr

,看到有 tcp_bbr 模块即说明bbr已启动。

二、CentOS7

评论有人已经成功。

1)RMP安装(推荐)

先更新到7.3,安装elrepo官方4.9正式版

YUM 更新

 
1
yum update -y

查看内核版本

 
1
2
cat /etc/redhat-release
#CentOS Linux release 7.3.1611 (Core)

安装

 
1
2
3
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 -y

查看内核是否安装成功

 
1
rpm -qa | grep kernel

更新 grub 系统引导文件并重启

 
1
2
3
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0  #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot

开机后 uname -r 看看是不是内核4.9

开启bbr

 
1
vim /etc/sysctl.conf

加两行:

 
1
2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

保存生效

 
1
sysctl -p

执行

 
1
sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr

执行

 
1
lsmod | grep bbr

看到有 tcp_bbr 模块即说明bbr已启动

 

2) 编译安装

 
1
2
3
4
5
6
7
8
9
10
11
12
wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb
ar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb
tar -Jxf data.tar.xz
 
install -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64
 
cp -Rav lib/modules/4.9.0-rc8-amd64 /lib/modules/
depmod -a 4.9.0-rc8-amd64
#centos >= 6
dracut -f -v --hostonly -k '/lib/modules/4.9.0-rc8-amd64' /boot/initramfs-4.9.0-rc8-amd64.img 4.9.0-rc8-amd64
 
grub2-mkconfig -o /boot/grub2/grub.cfg

然后修改系统启动引导文件:

 
1
vi /etc/grub.conf

需要修改Grub引导顺序,让新安装的内核作为默认内核。

或者执行:

 
1
grub2-set-default "CentOS Linux (4.9.0-rc8-amd64) 7 (Core)"

然后重启

 
1
reboot

重启后,查看内核是否安装成功。

 
1
uname -r

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

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

保存生效

 
1
sysctl -p

执行

 
1
sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr
执行

 
1
lsmod | grep bbr

, 看到有 tcp_bbr 模块即说明bbr已启动。

三、CentOS6

1)一键安装(推荐)

安装脚本(开源地址:https://github.com/52fancy/GooGle-BBR)

 
1
wget --no-check-certificate https://github.com/52fancy/GooGle-BBR/raw/master/BBR.sh && sh BBR.sh

之后重启服务器即可

验证是否安装成功

 
1
lsmod | grep bbr

如果结果显示bbr安装成功。

如果失败,请尝试RMP安装。

2)RMP安装(推荐)

RMP 地址:https://elrepo.org/linux/kernel/

 
1
2
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-4.9.0-1.el7.elrepo.x86_64.rpm

安装完成,修改启动引导。(自己百度vi 命令用法)

 
1
vi /etc/grub.conf

修改成 default=0

保存然后重启

 
1
reboot

重启后,查看内核是否安装成功。

 
1
uname -r

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

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

保存生效

 
1
sysctl -p

执行

 
1
sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr
执行

 
1
lsmod | grep bbr

,看到有 tcp_bbr 模块即说明bbr已启动。

编译安装(不推荐)

速度较慢。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
yum install vim wget gcc gcc-c++ xz bc ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel openssl-devel -y
cd /usr/local/src/
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.9-rc8.tar.xz
tar xvJf linux-4.9-rc8.tar.xz
cd linux-4.9-rc8
make menuconfig
uname -r
#2.6.32-573.3.1.el6.x86_64
cp /boot/config-2.6.32-573.3.1.el6.x86_64 .config
#cp: overwrite `.config'? #输入y
 
sudo sh -c 'yes "" | make oldconfig'
make #执行比较久,可以去看一集电视剧
make modules_install install#忽略提示could not find module vmware_balloon
修改Grub引导顺序,让新安装的内核作为默认内核。default = 0
vi /boot/grub/menu.lst #修改启动项

重启

 
1
reboot

重启后,查看内核是否安装成功。

 
1
uname -r

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

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

保存生效

 
1
sysctl -p

执行

 
1
sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr
执行

 
1
ps -ef| grep bbr

,看到有 tcp_bbr 模块即说明bbr已启动。

转自: Google BBR 优化算法,实现TCP加速,一键安装BBR

By:xSky | 技术相关 |

  • 分类目录

    • 技术相关 (18)
    • 原创作品 (11)
    • 人工智能/机器学习 (2)
    • 系统与架构 (9)
    • 数据库/数据分析 (8)
    • 分布式系统/存储 (4)
    • 服务端开发 (7)
    • WEBRTC研究 (6)
    • 开发调试 (8)
    • 网络与安全 (3)
    • 常用工具 (8)
    • 杂七杂八 (5)
  • 最新文章

    • 翻译:使用 Semgrep 进行热点代码评审
    • 共享内存并发路线图
    • 优化 QUIC 的 ACK 机制
    • QUIC 上的 RTP
    • [译] [论文] BBR:基于拥塞(而非丢包)的拥塞控制(ACM, 2017)
    • BBR拥塞控制算法
    • congestion_controller、 remote bitrate estimator、pacing模块浅析
    • 实战|QUIC协议在蚂蚁集团落地
    • 阿里XQUIC:标准QUIC实现自研之路
    • 弱网不弱-TQUIC助力业务提速30%
    • 程序员眼中最有价值的10条开发经验
    • 一文看懂WebTransport
    • QUIC协议和HTTP3.0研究
    • QUIC 协议在蚂蚁集团落地之综述
    • 机器视觉开源代码集合
    • 国外机器人实验室的开源项目
    • shell里配置代理
    • Envoy为什么能战胜Ngnix——线程模型分析篇 
    • VScode: 常用快捷键
    • ARM版群晖安装软件
    • 关于RTP中的时间戳问题
    • Address Sanitizer 用法
    • 使用google heap profiler进行内存占用分析
    • Linux中的常用内存问题检测工具
    • 超文本传输​​协议版本3 (HTTP/3)
    • Linux TCP队列相关参数的总结
    • xRedis 1.4 版本发布!
    • 编程类中文开源电子书合集
    • 史上最全的WebRTC服务器技术选型分析
    • 百亿流量微服务网关的设计与实现
  • 链接

    • xSky的Blog
    • 我的Github
    • 实时监控图表
    • 预印本
    • xRedis 在线文档
    • xSkyProxy
    • xChart 数据在线测试
    • 我的电子书
    • xChart 数据可视化系统
    • 树莓派技术圈
    • WebRTC开发者社区
  • 开源项目

    • xReis C++的redis客户端库
    • xBlog-C++ 博客程序
    • xSkyProxy-新的MySQL代理网关
    • 数据可视化平台- xChart
    • xhttpcache 高速数据缓存服务
    • xMonitor-图形监测工具
    • test

Powered By xBlog

Copyright 0xsky.com All Rights Reserved.