登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 974|回复: 0

腾讯正式发布TCP单边拥塞控制算法TCPA,比GoogleBBR速率提拔40%(附安装教程 ...

[复制链接]

161

主题

161

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-3-14 22:44:45 | 显示全部楼层 |阅读模式 来自 河南郑州
YjEzkves2VtTJr3E.jpg


(题图:Dubai Mall,迪拜,2019)



腾讯内核团队克日发布了内部利用的 TCPA 单边拥塞控制算法,站长、个人、企业均可以免费利用。对于用户来说,在 TCP 单边加快上除了 Google BBR、锐速,如今又多了一个选择。



TCPA 由腾讯 TEG 操纵体系组研发,基于 RHEL 7.4 源码。相对于 Google 的 BBR 算法, TCPA 的 上风在于小文件的性能提拔。小文件比 BBR 能提拔 40% 以上,大文件比 BBR 能提拔 5%~10% 。TCPA 也默认仅加快网站常用端口 80/443/8080,更实用于建站场景。


TCPA 简介



d7y0zZxtD8lzmN0T.jpg


上图是 TCPA,发送数据包和吸收应答包后的处置惩罚逻辑图。一共包罗 9 个模块。应用步伐通过 Sendfile,Write 等发送的后,交由内核的数据包构建模块来处置惩罚,终极天生一个个 SKB 并放入发送队列中。平缓发送模块,根据拥塞控制模块所产生的发送速率/发送窗口值来平缓地将这些数据(无论是新数据,照旧重传数据)发送到网络中,自己并不会决议发送的速率,只会按照给定的速率/发送窗口来实行。


超时模块用来决议哪些数据包超时,并重传,终极会交给平缓发送模块来发送。Probe 探测模块,是依据网络的特定必要,构造一些数据包来探测网络的质量环境。发送是交给平缓发送模块来发送,吸收到的应答包,会将 Probe 应答包交给 Probe 模块来处置惩罚。

收到应答包后,假如有 SACK 则单独处置惩罚 SACK,SACK 的处置惩罚逻辑比力复杂,必要知道哪些数据包被应答,哪些未被应答,必要对重传队列举行标志。而且也会根据 SACK 中的应答来判定哪些报文丢包了,当前网络中的 RTT 值变革等。这里会给丢包检测模块,拥塞控制模块提供判定信息。丢包检测模块,用来判定哪些数据包已经抛弃,好比快速重传,RACK 等算法。这里只去标志抛弃的报文,详细的重传由重传包处置惩罚模块来实行。


拥塞控制算法,用来判定当前网络链接环境,并据此来决定当前发送的速率和发送窗口值。差别的拥塞算法所依靠的判定信息差别。 窗口的增减均由这里来判定。这里会依靠 SACK 模块,丢包检测模块,RTO 超时模块,Probe 模块等给予关键信息。重传数据包模块和新数据发送模块相对比力简朴,将数据整理好后,交给平缓发送模块来发送。


总的来说,TCPA 的修改不但仅是对拥塞算法的修改,也对收发包的整个逻辑举行了重构。对于体系已有的功能,我们额外还提供了可调解的参数接口,供利用。好比小表中枚举了部门调解的参数:













net.core.wmem_max = 3276800net.ipv4.tcp_fack = 0net.ipv4.tcp_init_cwnd = 10net.ipv4.tcp_loss_init_cwnd = 1net.ipv4.tcp_mem = 379479      505972  758958net.ipv4.tcp_metrics_minrtt = 0net.ipv4.tcp_rto_max = 120net.ipv4.tcp_rto_min = 200net.ipv4.tcp_timestamps = 1net.ipv4.tcp_wmem = 4096       16384   4194304
官方 TCPA 和 Google BBR 测试对比陈诉




  • 测试方案
 
利用第三方博睿举行测试。一共举行了 2 轮的测试,第一个测试周期:12.9 的 0 点~12.11 的 0 点,共两天。第二个测试周期 12.12 的 0 点到 12.14 的 0 点。


TCPA 安装包安装后利用默认设置举行测试。最新内核 Google BBR 和尺度内核均接纳默认内核的设置举行测试。

3 台服务器属于同一个机房,设置天下的电信(服务器属于电信运营商)测试使命举行测试。



  • 测试效果
 

测试使命第一次测试第二次测试2次测试均匀值纵向性能对比
640KB使命TCPA-电信2047.4012183.0342115.218
TCP-电信1450.6361383.6741417.15549.26%
BBR-电信1448.1551536.5171492.33641.74%
8MB使命TCPA-电信2570.4222552.9812561.702
TCP电信1768.4581626.9091697.68450.89%
BBR-电信2295.642358.6462327.14310.08%
25MB使命TCPA-电信2769.4122713.6322741.522
TCP电信1876.6741915.5491896.11244.59%
BBR-电信2585.82590.2052588.0035.93%

阐明:“纵向性能对比” 是指 BBR 默认设置,TCPA 启用后默认设置时,“2次测试均匀值” 中, TCPA 相比 TCP,TCPA 相比 BBR 的测试效果。




  • 测试结论


1. Google BBR 算法相比尺度的 TCP 的 Cubic 算法,性能提拔显着。小文件差别不大;大文件的下载性能显着,约 35% 左右。


2. 启用 TCPA 后并外加体系参数优化后, 巨细文件均比尺度的 TCP 提拔 40 %以上。


3. 启用 TCPA 后并外加体系参数优化后,小文件比 Google BBR 能提拔 40% 以上,大文件比 Google BBR 能提拔 5%~10%。


更具体测试陈诉可参考:http://linux.qq.com/?p=224

安装 TCPA



  • 情况要求





体系 CentOS 7 以上Boot 分区不小于 500M (太小大概导致安装内核失败)


  • 手动安装


1.  下载相干内核和安装包








# 定制的内核链接:https://share.weiyun.com/5AeyuFg 暗码:d1swc1
# TCPA 安装包链接:https://share.weiyun.com/5RAyh7c 暗码:qeetzp

2.  安装须要依靠



$ yum -y install net-tools bzip2
3.  安装体系内核









$ rpm –ivh kernel-3.10.0-693.5.2.tcpa06.tl2.x86_64.rpmPreparing...                          ################################# [100%]Updating / installing...   1:kernel-3.10.0-693.5.2.tcpa06.tl2 ################################# [100%]Install kernelSet Grub default to "3.10.0-693.5.2.tcpa06.tl2" Done.
4.  重启操纵体系



$ reboot
 5.  安装 TCPA 模块











# 解压 TCPA 安装包$ tar jxvf tcpa_packets_180619_1151.tar.bz2# 安装 TCPA 模块,默认安装到 /usr/local/storage/tcpav2 目次$ cd tcpa_packets$ sh install.sh# 启用 TCPA模块$ cd /usr/local/storage/tcpav2$ sh start.sh
6.  启用 TCPA 模块






$ cd /usr/local/storage/tcpav2$ sh start.sh

7.  验证 TCPA 是否启用乐成




$ lsmod|grep tcpatcpa_engine           224249  0

8.  卸载 TCPA 模块




$ cd /usr/local/storage/tcpav2$ sh uninstall.sh


  • 一键安装脚本


假如你以为上面手动安装的方法太过贫苦,可以利用下面的一键安装脚本。




$ wget http://down.08mb.com/tcp_opz/tcpa/tcpa.sh$ sh tcpa.sh

利用阐明:一键安装脚本无需人工干预,会主动安装依靠(仅 epel-release、net-tools)和内核并重启,重启后安装主动完成。



  • 别的本领


TCPA 默认只加快 80,443,8080 这 3 个端口,如需新增别的加快端口可按如下格式增长自界说端口。


$BINDIR/$CTLAPP access add tip $ip tport 自界说端口好比,要增长的端口为 8989。





$ vim /usr/local/storage/tcpav2/start.sh
# 在第46行后添加:$BINDIR/$CTLAPP access add tip $ip tport 8989
参考文档



http://www.google.com
http://t.cn/EMGiz64
http://t.cn/EMM9ur8
http://t.cn/EMIHaJn
http://t.cn/EMIrT7U
http://t.cn/EMIga9D


RlEnzlqy5eePHkZu.jpg

本日头脑


每个人的大脑都有两部门,他们分别是条理较高的逻辑部门与条理较低的感情部门,我称之为两个你,他们会争取对一个人的控制权。


—— 瑞·达利欧 《原则》



Mo5p6g7CJ5goEJ4x.jpg



保举阅读



  • 图解 Docker 架构
  • 图解 Kubernetes 架构
  • Docker 设置与实践清单

  • 利用 TC 和 Netem 模仿网络非常

  • 手把手教你利用终端录屏神器 Asciinema


TO209z8RoyA3bzSw.jpg

X7sc4oB4yNb77HpB.jpg

a818sMnEnHNz0uJW.jpg




上一篇:PD假造机安装教程(傻瓜式)
下一篇:常用软件资源下载以及安装教程
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-4 18:08 , Processed in 0.080444 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表