本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+

虚拟技术:OpenVZ 以外的(KVM、Xen、VMware等)

内存要求:≥128M

日期  :2017 年 01 月 13 日

个人对BBR的粗略理解:

标准 tcp拥塞控制存在的问题:

1.标准 tcp拥塞通过判断丢包来判断发送窗口的大小,而网络中的丢包会存在两种情况,带宽占满了而丢包和错误丢包。标准 tcp拥塞控制主要想跟据带宽占满了而丢包来增减发送窗口大小,但是它区分不出来丢包和错误丢包,所以窗口大小会比实际的小。

2.网络中会有一些 buffer,就像输液管里中间膨大的部分,用于吸收网络中的流量波动,标准tcp会先灌满整个buffer,灌满整个buffer后网络必然会延迟。

BBR解决这两个问题:

1.BBR没有根据丢包来增大或减小发送窗口,而是根据判断带宽和延迟来进行判断

2.当发送速率增长到开始占用 buffer 的时候,有效带宽不再增长,BBR 就及时放弃了(事实上放弃的时候占的是 3 倍带宽 × 延迟,后面会把多出来的 2 倍 buffer 清掉),这样就不会把缓冲区填满。

参考:https://www.zhihu.com/question/53559433

关于本脚本

本脚本已在 Vultr 上的 VPS 全部测试通过。

当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。

某些服务商(如 Linode、DigitalOcean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。

脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。

由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。

使用方法

使用root用户登录,运行以下命令:

wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。

重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

uname -r
# 查看内核版本,含有 4.9.0 就表示 OK 了
# ————————————
sysctl net.ipv4.tcp_available_congestion_control
# 返回值一般为:
# net.ipv4.tcp_available_congestion_control = bbr cubic reno
# ————————————
sysctl net.ipv4.tcp_congestion_control
# 返回值一般为:
# net.ipv4.tcp_congestion_control = bbr
# ————————————
sysctl net.core.default_qdisc
# 返回值一般为:
# net.core.default_qdisc = fq
# ————————————
lsmod | grep bbr
# 返回值有 tcp_bbr 模块即说明bbr已启动。

参考链接:

https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md

http://elrepo.org/tiki/tiki-index.php

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/

更新日志:

2017 年 01 月 13 日

1.更新 内核为 4.9.3。

2017 年 01 月 09 日

1.更新 内核为 4.9.1。

使用效果:

原本youtube视频信息1000kbps直接10000kbps,效果明显

原文地址:https://doub.io/wlzy-22/ https://teddysun.com/489.html

最新文章

  1. 【记录】GitHub/TortoiseGit 修改邮箱/提交者
  2. Android APP压力测试(二)之Monkey信息自动收集脚本
  3. mysql中价格用什么数据类型表示最佳?
  4. 话说IOC(DI)
  5. POST 500 Internal Server Error
  6. ACM 懒省事的小明
  7. linux 文件权限 初级
  8. C#winform设置DateTimePicker的时间格式
  9. vsm 的理解
  10. [Swift系列]001-入门准备
  11. ASIC 前端功能验证等级与对应年薪划分[个人意见] (2011-07-04 15:33:35
  12. jQuery Tools:Web开发必备的 jQuery UI 库
  13. Python 一路走来 HTML CSS Javascript
  14. Making your first driver - complete walkthrough(使用VisualDDK)
  15. 如何用程序删除win 7下SYSTEM权限的目录
  16. JavaScript基础知识(Math的方法)
  17. 第16月第6天 vs2005 lseek directdraw
  18. windows 系统中的 afd 驱动
  19. 利用angularjs完成注册表单
  20. dialog 菜单

热门文章

  1. 数据包报文格式(IP包、TCP报头、UDP报头)
  2. Activiti工作流数据库表结构
  3. IDEA中使用GsonFormat
  4. kali apt update 错误——下列签名无效: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository
  5. 吴裕雄--天生自然PYTHON爬虫:使用Scrapy抓取股票行情
  6. GitHub 网站汉化
  7. Python学习第十六课——静态属性(property, classmethod, staticmethod)
  8. CVPR 2019 行人检测新思路:
  9. ORACLE A表字段更改为B表的字段
  10. Linux系统下安装python3.7.3环境