快捷搜索:   服务器  PHP  安全  IIS  linux 安全

CENTOS 7升级换内核开启BBR加速

TCP BBR是前不久谷歌开源的一项拥塞控制算法,可以更高效的利用公网网络带宽,提高联网效率和速度,建议有条件的服务器都安装一下,不过如果大家都装,那互相抢来抢去估计到时候就效果不明显了,不过目前这个还是挺少人用的就是了。

网上抄来一段介绍,大家可以看看


大多数人用的是 TCP Cubic (Linux) / Compound TCP (Windows),而在有一定丢包率的情况下,TCP BBR 更加激进,会抢占了更多的公网带宽

此次 Google 提交到 Linux 主线并发表在 ACM queue 期刊上的 TCP BBR 拥塞控制算法,继承了 Google “先在生产环境部署,再开源和发论文” 的研究传统。TCP BBR 已经在 Youtube 服务器和 Google 跨数据中心的内部广域网(B4)上部署。

TCP BBR 致力于解决两个问题:

1、在有一定丢包率的网络链路上充分利用带宽。

2、降低网络链路上的 buffer 占用率,从而降低延迟。

TCP 拥塞控制的目标是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想用满这条水管,最好的办法就是给这根水管灌满水,也就是:

水管内的水的数量 = 水管的容积 = 水管粗细 × 水管长度

换成网络的名词,也就是:网络内尚未被确认收到的数据包数量 = 网络链路上能容纳的数据包数量 = 链路带宽 × 往返延迟

TCP 维护一个发送窗口,估计当前网络链路上能容纳的数据包数量,希望在有数据可发的情况下,回来一个确认包就发出一个数据包,总是保持发送窗口那么多个包在网络中流动。


其实可以简单的理解,这就是一个加速算法,可以加快你服务器访问速度,充分利用带宽资源。与锐速相同的是都是单边加速无须客户端且效果很好,与锐速不同是它可以免费使用,不存在破解的问题。

Linux Kernel 4.9 (含后续版本)已经集成了该算法,所以我们其实要做的就是将系统内核更换更新到最新即可。

因为操作中涉及服务器后台操作,所以一切都是在SSH中进行,另外因为涉及到内核改写,因此如果你不是独立服务器或者KVM架构的VPS可能不能成功,OPENVZ的是不行的噢。


下面进入操作


首先,我们为系统增加elrepo源:

以ROOT权限登陆SSH,然后执行下面命令

cat > /etc/yum.repos.d/elrepo.repo << EOF

然后复制下面命令全部黏贴,然后回车

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/\$basearch/
http://mirrors.coreix.net/elrepo/kernel/el7/\$basearch/
http://jur-linux.org/download/elrepo/kernel/el7/\$basearch/
http://repos.lax-noc.com/elrepo/kernel/el7/\$basearch/
http://mirror.ventraip.net.au/elrepo/kernel/el7/\$basearch/
enabled=1
gpgcheck=0
EOF

第二步,安装替换最新内核及grub2

yum -y install kernel-ml grub2

查看最新内核是否安装成功

ls -l /boot/vmlinuz*

看到上面的结果,最后一条已经是4.10.5了,只要是4.9及以后的版本都是支持SSR。

那么下面我们可以开始替换CentOS 7内核了:

更改grub

(以下用root进行操作)

输入以下命令查看grub启动列表:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

会出现类似的列表:

0 : CentOS Linux (4.10.5-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux 7 Rescue f0e606d25a164f39aa306b052f38bc33 (3.10.0-327.36.3.el7.x86_64)
2 : CentOS Linux (3.10.0-327.36.3.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-9720ffe2dea246599e9e8048162adebf) 7 (Core)

输入以下命令更新缺省内核

grub2-set-default 0

注意选择4.10.5版本新内核前面的数字,这里是0所以输入0


重启系统

reboot

重启后SSH会断开,我们需要稍微等待些许时间,即可再次连接上,然后查看内核:

uname -a

不出意外,应该已经是最新的4.10.5了

接下来赶紧开启BBR吧

cat >>/etc/sysctl.conf << EOF


黏贴下面内容,点右键全部自动输入,然后回车

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF


再继续查看内核参数:

sysctl -p

最后保险起见,复核一下BBR是否生效:

sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

看到的反馈说明,BBR模块已经开始运作了!感受下Google带来的黑科技吧!

注意:系统内的ipv6项并没有tcp_congestion_control一说,v4和v6用的是一样的(原文引用: IPv6 has no global variables such as tcp_*. tcp_* settings under ipv4/ also
apply to IPv6.)


BBR和锐速一样,只支持非OpenVZ架构的机器,这边我推荐几个KVM的:

搬瓦工:https://free.bnxb.com/vps/26994.html


VirMach:https://free.bnxb.com/vps/27214.html


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论