前段时间谷歌推出了新的 TCP-BBR 开源算法,可以起到单边加速 TCP 连接的效果,也就是不用客户端的配合,用来替代收费的锐速再合适不过,毕竟开源免费。TCP-BBR 的目的是要尽量跑满带宽,并且尽量不要有排队的情况,效果不比速锐差。 Ubuntu 部署起来很方便,CentOS 稍麻烦,不过相信过不了多久就会有 CentOS 的一键包了。Ubuntu14 下已经测试成功!注意BBR和锐速一样不能用在 OpenVZ 的机器上,所以搬瓦工等是用不了的

TCP-BBR项目github主页:https://github.com/google/bbr
TCP-BBR项目开发论坛(英文):https://groups.google.com/forum/#!forum/bbr-dev
TCP-BBR快速使用手册(英文):https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md

TCP-BBR目前已经在 YouTube 服务器和 Google
跨数据中心的内部广域网(B4)上部署,由此可见出该TCP加速算法前途一片光明啊!TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。打个比方,一条网络链路就像一条水管,要想最大化利用这条水管,最好的方法就是给这跟水管灌满水。

服务端部署

Debian 8 / Ubuntu 14(Ubuntu部署最方便)

1. 下载4.9最新内核

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

2. 安装内核

dpkg -i linux-image-4.9.0*.deb

3. 删除旧内核

 dpkg -l|grep linux-image
apt-get purge 旧内核ID(此处为旧内核ID,不懂可以看下图)

比如上图圈起来的部分就是需要卸载的旧内核,那么命令用该是这样的:

apt-get purge linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic 

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

update-grub 
reboot

CentOS 6

1. 更换内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y

2. 查看内核是否安装成功

rpm -qa | grep kernel

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

sed -i 's:default=.*:default=0:g' /etc/grub.conf
reboot

Tips:开不了机的打开vps后台控制面板的vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了。

CentOS 7

1. 更换内核

 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

2. 查看内核是否安装成功

 rpm -qa | grep kernel

正常会如下所示:

[root@centos-512mb-sfo1-01 ~]# rpm -qa | grep kernel
kernel-firmware-2.6.32-642.11.1.el6.noarch
kernel-headers-2.6.32-642.11.1.el6.x86_64
dracut-kernel-004-409.el6_8.2.noarch
kernel-2.6.32-642.11.1.el6.x86_64
kernel-devel-2.6.32-642.11.1.el6.x86_64
kernel-ml-4.9.0-1.el6.elrepo.x86_64 #这就是我们安装的新内核

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

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

开启TCP-BBR

1、先查看下内核是否更换为4.9

uname -r

2、生效BBR

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

3、检测是否完全生效

sysctl net.ipv4.tcp_available_congestion_control

正常情况会如下显示:

[root@centos-512mb-sfo1-01 ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

接着

sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr

正常情况是这样的:

[root@centos-512mb-sfo1-01 ~]# sysctl -n net.ipv4.tcp_congestion_control
bbr
[root@centos-512mb-sfo1-01 ~]# lsmod | grep bbr
tcp_bbr 20480 55

这样我们就已经为我们的VPS部署好了谷歌Google的 TCP-BBR 协议,感受一下飞的感觉吧!以前,用vormach 8刀的凤凰城测试,加了锐速后速度大概在 4 到8M,现在接近 20M 了,但是也有说用了比不用还慢的,各位还是自己多多测试吧。

[转]非OpenVZ下利用谷歌TCP-BBR协议单边加速你的VPS的更多相关文章

  1. 【ARM-Linux开发】【CUDA开发】【视频开发】关于Linux下利用GPU对视频进行硬件加速转码的方案

    最近一直在研究Linux下利用GPU进行硬件加速转码的方案,折腾了很久,至今没有找到比较理想的硬加速转码方案.似乎网上讨论这一方案的文章也特别少,这个过程中也进行了各种尝试,遇到很多具体问题,以下便对 ...

  2. 网络编程的基本概念,TCP/IP协议简介

    8.1.1 网络基础知识 计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议. 网络编程的目的就是指直接或 ...

  3. 浅析TCP/IP协议

    浅析TCP/IP协议 0x00 什么是TCP/IP协议? ​ 想一想人与人之间交流需要什么?我们是不是要掌握一种我们都能体会到对方意思的语言.那么计算机与网络设备之间进行通信,是不是不同设备之间是不是 ...

  4. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  5. 来自Google的TCP BBR拥塞控制算法解析

    转自:http://blog.csdn.net/dog250/article/details/52830576 写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算 ...

  6. 利用谷歌开源工具cAdvisor 结合influxdb存储+Grafana前端展示进行Docker容器的监控

    一.Docker 监控方式 1.利用docker 的 docker stats API 命令: docker stats [容器ID/容器名称] [root@docker ~]# docker sta ...

  7. TCP BBR - 一键安装最新内核并开启 TCP BBR

    原文地址: https://teddysun.com/489.html 最近,Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经 ...

  8. TCP BBR - 一键开启脚本

    这是秋水逸冰提供的TCP BBR一键开启脚本,脚本详细说明地址: https://teddysun.com/489.html 按照说明操作就可以了,注意问题:这个脚本获取有的时候可能有问题,如果提示脚 ...

  9. 开启TCP BBR拥塞控制算法

    原文来自:https://github.com/iMeiji/shadowsocks_install/wiki/%E5%BC%80%E5%90%AFTCP-BBR%E6%8B%A5%E5%A1%9E% ...

随机推荐

  1. Spring 依赖注入控制反转实现,及编码解析(自制容器)

    定义: 在运行期,由外部容器动态的将依赖对象动态地注入到组件中. 两种方式: 手工装配 -set方式 -构造器 -注解方式 自动装配(不推荐) 1利用构造器 2set方法注入 dao: package ...

  2. 在Mac OS上安装Vagrant和Docker的教程

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/128.html?1455808640 当听到很多人在说Docker是多么多 ...

  3. apache 虚拟主机的配置

    一.基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP: [root@localhost root]# ifconfig et ...

  4. 【Linux高级驱动】LCD logo

    1.将LOGO图片的大小调整到合适尺寸(480x272) 2. 使用GIMP2生成符合Linux要求的PPM图片文件 启动GIMP2打开通过ACDSEE调整的图片-->    通过菜单 图像模式 ...

  5. atitit.插件体系设计总结o73.doc

    1. 两大类型:微内核(级联树形结构)与巨内核(管理容器,并联结构). 1 2. 通用插件接口 1 3. 插件的绑定and 初始化 2 4. 微内核插件平台设计 2 5. 参考 2 1. 两大类型:微 ...

  6. TF Boys (TensorFlow Boys ) 养成记(四)

    前面基本上把 TensorFlow 的在图像处理上的基础知识介绍完了,下面我们就用 TensorFlow 来搭建一个分类 cifar10 的神经网络. 首先准备数据: cifar10 的数据集共有 6 ...

  7. css之属性部分

    这篇写的是今天的学习到的属性,一共20个. 属性再多,但也要会使用,会在使用时可以记起它,才能起到它为我们所需要的作用. 样式属性 1.border CSS边框属性允许你指定一个元素边框的样式和颜色. ...

  8. Bruce Eckel:编程生涯(转载)

    Bruce Eckel:编程生涯(转载) 说明:Bruce Eckel 著有大名鼎鼎的<Thinking in C++>和<Thinking in Java>.本文是他对程序员 ...

  9. Winform TreeView 查找下一个节点

    转载:http://www.cnblogs.com/Ruiky/archive/2013/02/01/2888674.html public static class TreeViewHelper { ...

  10. Gabor学习笔记

    本文根据博客http://blog.csdn.net/watkinsong/article/details/7870996 ,博客http://www.cnblogs.com/yingying0907 ...