网络规模与性能优化的一篇随笔

这篇具有很好参考价值的文章主要介绍了网络规模与性能优化的一篇随笔。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本周写篇轻松的话题,注意信息传输的尺度和缩放比例,写篇随笔。

控制面和数据面随规模缩放的影响,举几个例子就能说明白。

CSMA/CD,控制面和数据面在一起,控制信息交互时延和数据面时延在同一尺度时,就到了极限,因为控制交互时延相对数据面时延更大的话,便可以反过来用了,如果一个胖经理跑 100 步等于一个工人走 1 步,为什么不换个瘦经理或者让工人命令经理呢,因此它们趋向最多收敛到一致。控制面和数据面合而为一的另一个例子是 TCP,带内控制协议典范。

翻转时延分配的经典例子是非对称加密和对称加密,时延更大的 RSA 可用的理由是它更安全更方便解决对称密钥分发和认证问题,但更大的理由是这些需求相对于对称加密更不频繁,否则人们肯定会想办法组合对称加密算法来满足。

交换式以太网脱胎于总线是从 CSMA/CD 逐步将控制面抽离并将控制面信息交互时延不断压缩的过程,最终控制信息交互时延足够短,几乎就有了全局视图,用 crossbar 类交换设施取代统计仲裁变得可行。但 rfc2544 的要求指出控制时延依然存在,它并没有消失,只是和传播时延相比,低到足以忽略了。

接着看另一个时延尺度问题从而揭示根本。

提到 rtt,它指主机时延,传播时延,排队时延之和,整个网络的控制面开销被所有流量的转发过程分担。注意到这些时延在整体 rtt 中的占比以及影响非常重要。

对不同尺度的网络,主机时延和排队时延的占比存在根本区别,问题解法也根本不同。网络规模越小,主机时延和排队时延占比越大,而排队时延影响越大,详细分析这事能指导我们做正确的事。

注意两个变量,一个是光速传播时延随网络规模线性变化,即 proprt = d/c,一个是 buffer 排空时间随网络规模以 根号n 变化,依据是 buffer_size = bdp/根号n。两个变量表现为两个不同伸缩速率,围绕这两个伸缩速率的其它时延伸缩是根本:
网络规模与性能优化的一篇随笔,网络,性能优化

在数据中心,rtt 的主机分量和传播分量在同一 us 尺度,排队分量要高一两个数量级在 ms 尺度,以应对随机而频繁的 incast。三者占比类似,主机时延增加一倍,rtt 至少增加 1/3,而一旦遭遇 buffer queuing,rtt 至少增加 10 倍,这指明两个明确的方向,降低主机时延,减少 incast。大多数互联网厂商的伙计们都在干这两件事,DPDK,XDP 等 bypass,FPGA,DPU 等研发均旨在降低主机时延,而包括 SRD,Falcon 等 transport protocol,以及 SDN 技术旨在缓解甚至消除排队时延,而 Swift cc 则旨在明确区分势均力敌的主机和传播/排队网络时延,以更精确进行拥塞识别。

数据中心内部,SDN 控制器作为控制面,它本身与传统路由协议工作在同一时间尺度(参考南北向流量的生成过程),与 CSMA/CD 一样已到规模极限,但这并不是摒弃它的理由,相反,它是从多个盒子里故意抽拉出来的,因为它能大大减少甚至消除排队时延,而排队时延在数据中心影响巨大。

而 SDN 控制器在广域网上的作用却是另一个故事,反在相反的路上越走越远。广域网的排队时延小于传播时延且随规模增加而差距渐大(参见根号关系),控制信息交互时延与传播时延仍在同一尺度,尝试用它稍微降低一个很重要但并不那么重要的排队时延,反过来可能引入控制器净时延,因为广域网是异步统计的,完全消除排队肯定需要同步仲裁,这本身反而会加重排队(比较有趣的矛盾)。

总之,排队时延的广域网的影响不如在数据中心的影响大,为降低(但不能消除)排队时延在广域网引入 SDN 的 ROI 太低甚至带来净亏损。

整个互联网即使一开始不是脱胎于应对核打击而采用分布式架构,仅仅在知道中心化如此低效后,也还会转向分布式架构。

如果SDN 控制信息交互时延不低于数据通信本身甚至阻滞(比如指令尚未下发)数据通信时,它都有收缩趋势,只有在它能实际降低净时延时,比如数据中心场景,才能抵抗这种收缩趋势,所以不可能存在全球 SDN 控制器,它只能存在于数据中心,局域网。就像大帝国达到一定疆域必定收缩一样,而像希腊城邦则对CSMA/CD更包容。

至于 SDWAN 的意义,单独抽出这张 overlay,它就是个小规模网络,不得不说的是,这涉及到分形或同构性,只要在同一个层次上说事,就要在这个层次上谈规模,规模缩放的原则依然是普适的同一个原则,因此,全球 overlay 上的 SDN 就可以,但全球 underlay 上 SDN 就不行,但如果规模扩展到太阳系,overlay 的 SDN 也不行了。

一个和 SDWAN 规模相关的例子是,假设选择一条更好的路径的开销为 1ms,在数据中心,这 1ms 的选路开销避开 5ms 排队延时或许看起来挺值,但在广域网上,1ms 的选路开销可能减少 50ms 的传播时延(比如一个节点比另一个节点近 10000 公里),并且减少了 10ms 的排队时延,同样的选路开销却带来相差 10 倍的增益,这就是规模非线性效应。另一方面,数据中心抖动 100us 可能造成总 rtt 相差一倍,但对于广域网,100us 微不足道,因此对于 cc 中的 bdp 计算,显然对规模越小的网络越敏感,一个看得见的结果是 bbr 在小规模网络中侵占性太强(rtt 陡一下,bdp 差很多)而不实用。

指导性很明确,大规模网络选路收益大,小规模网络时延敏感性高。用什么不用什么,怎么做,现成的东西怎么改,自己定。

现在谈下传播时延。

传播时延看起来是一个受光速制约的倔强变量,我们无法做任何事情。但当它真成为瓶颈,唯一选择就是绕开它。典型的例子是多核处理器和边缘计算,看起来不相干的东西,实际是一回事。

处理器实际上就是用导线连接的不同计算组件总体,每个组件完成部分计算,将结果通过导线传输到另一个组件继续。传播时延不变,但组件的计算速度却在变快,直到它超过了传播速率,导线成了瓶颈。

让导线变短是好办法,而摩尔定律让这可行。处理器发展方向不是不断增强计算组件,而是不断把所有组件缩小,把整个处理器缩小,同一空间部署多个更小的处理器,这就是多核。

边缘计算则更直接,其不变量是一些硬需求,比如刹车时间,卡顿感知时间,分帧感知时间,唯一的方式就是将计算搬到离自己足够近到传播时延满足这些要求的地方。由此计算弹性可以衍生出 CDN,在边缘计算资源闲置时可缓存内容资源供就近下载,但有趣的是,这个顺序是反着的,CDN 更早一些,后来才有了边缘计算,可见时间不耐古已有之。

我举个例子结束关于传播时延的讨论,半径 200 米的圆形社区,圆心处有一家大型超市,别墅围绕在圆周,居民幸福感很强,半径 200 公里的圆形社区,别墅围绕在圆周,圆心处即使有座城市,居民便感受不到便利了。因为从步行到汽车速度的缩放相对距离缩放太慢了。

最后,谈谈 TCP。所有 TCP 失效的问题几乎都是规模问题。

上周写过一篇文章,谈谈越来越无效的拥塞控制 提到随着带宽的提高,拥塞信号越发不准确,传统的长肥管道问题也是一个规模问题,两个其实也是一回事,网络规模变大了,速度变快了,可拥塞的事实并没变,传达这个事实必然不能再用老方法了。

生活在越来越大的城市里的人们直接串门越来越少,事前都要先约一下,跑空的概率增加,代价增大,规模缩放会改变信息交互方式。

长肥管道中丢包后 cwnd 张开慢只是表象,认识不到本质只会被这些表面现象牵着鼻子走,就算不用 cwnd 控制你也搞不定。你想想任何信号包括电力在长距离传输中也会衰减就明白本质了,这其实是成功概率是与关系很快趋近 0,失败概率是或关系的问题很快到 100%,这概率计算随着规模扩展迅速非线性地拉大成功和失败之间的距离,这就是本质。解法自然就是不要搞长肥管道,别跟自然律对抗。

长肥管道问题,其它行业早就有解法,信号传输用中继补偿衰减,长距离输电升压减少热耗,TCP 你就不搞个代理 or SDWAN 隧道模仿一下信号中继,你就不用 pacing 模仿一下升压减少对 buffer 的冲击(bdp 很大,burst 对 buffer 冲击大,类似大电流的热耗)?固有损耗只能通过中继,比如电线漏电是没法通过升压解决的,但自身行为导致的损耗是可通过调节自身行为弥补的,比如升压输电,pacing 发送,一个 100MB 的 buffer 一窗发 110MB 就会丢包,但 pacing 就能顺利通过,这就是为什么转发节点都 pacing 的原因,网络传输也有欧姆定律。

成天想着怎么往长肥管道里猛灌增加 cwnd,除非你有物理专线,否则灌得多丢得多。

so?线性系统不好玩,纯内卷看不到岸。只有指数(无论指数是否大于 1)系统才有趣,才能在缩放中让各组分以不同比例的速度达到极限,优化明显落后的,或者砍掉明显靠前的,就有了看得见的收益,而工作的意义就在于,你要敏锐地发现哪些组分缩放地更快或者更慢。

希望本文对你有所启发。

浙江温州皮鞋湿,下雨进水不会胖。文章来源地址https://www.toymoban.com/news/detail-752071.html

到了这里,关于网络规模与性能优化的一篇随笔的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 客户案例:高性能、大规模、高可靠的AIGC承载网络

    客户是一家AIGC领域的公司,他们通过构建一套完整的内容生产系统,革新内容创作过程,让用户以更低成本完成内容创作。 RoCE的计算网络 RoCE存储网络 1.不少于600端口200G以太网接入端口,未来可扩容至至少1280端口 1.不少于100端口200G以太网接入端口,未来可扩容至至少240端

    2024年02月11日
    浏览(38)
  • Flink:处理大规模复杂数据集的最佳实践深入探究Flink的数据处理和性能优化技术

    作者:禅与计算机程序设计艺术 随着互联网、移动互联网、物联网等新型网络技术的不断发展,企业对海量数据的处理日益依赖,而大数据分析、决策支持、风险控制等领域都需要海量的数据处理能力。如何高效、快速地处理海量数据、提升处理效率、降低成本,是当下处理

    2024年02月13日
    浏览(40)
  • 利用LightHouse进行合理的页面性能优化,看这一篇就够了!

    Lighthouse 是一款由 Google 开发的开源工具,用于评估 Web 应用程序的性能和质量。它可以分析 Web 应用程序的加载速度、渲染性能、可访问性、可用性和最佳实践等方面,提供详细的报告和建议。 官网 1.谷歌打开设置,搜索输入商店: 2.下载 Lighthouse : 3.我们从官网上下载一个

    2024年02月05日
    浏览(32)
  • 账号登录相关的一点随笔

    最后更新于2023年8月8日 14:25:32 简单:一个token验证; 前端发来登录信息,后端验证通过后,将token发回前端; 复杂:Access Token + Refresh Token验证: 将Access Token和Refresh Token都发回前端,AT过期时间短,RT时间长。AT过期后,使用RT刷新AT,再用新的AT登录。 token这东西可以放在ht

    2024年02月13日
    浏览(28)
  • 大规模参数服务器上的神经网络训练优化——Facebook 研究团队进展报告

    作者:禅与计算机程序设计艺术 随着深度学习在图像、自然语言处理等领域的广泛应用,其模型的规模也越来越大,训练所需要的时间也越来越长。为了加快训练速度,参数服务器(Parameter Server)模式被提出,将神经网络训练过程中的参数分配到多个计算机上,并通过统一

    2024年02月06日
    浏览(31)
  • 一篇随笔学会HTML

    Hyper Text Markup Language 超文本标记语言 超文本:文字、图片、音频、视频、动画 标记:利用标签的语言 2013-5-6-HTML5 W3C(World Wide Web Consortium) 万维网联盟 结构化标准语言(HTML、XML) 表现标准语言(CSS) 行为标准(DOM、ECMAScrip) 注释:!— — DOCTYPE 告诉浏览器我们使用什么规

    2024年02月11日
    浏览(26)
  • 一篇随笔会用Bootstrap

    Bootstrap是美国Twitter公司的设计师 Mark Otto 和 Jacob Thornton 合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目

    2024年02月11日
    浏览(27)
  • 如何在博客园发布自己的第一篇随笔

    ✨前言✨ 本片文章,主要在于C#连接MySQL数据库,由于这之间无法建立直接联系,这时候就涉及到了第三方连接工具.NET,以此来建立C#与MySQL数据库的连接 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留

    2024年02月05日
    浏览(33)
  • Linux性能优化--性能工具:网络

    本章介绍一些在Linux上可用的网络性能工具。我们主要关注分析单个设备/系统网络流量的工具,而非全网管理工具。虽然在完全隔离的情况下评估网络性能通常是无意义的(节点不会与自己通信),但是,调查单个系统在网络上的行为对确定本地配置和应用程序的问题是有帮助的

    2024年02月07日
    浏览(44)
  • 前端--性能优化【上篇】--网络优化与页面渲染优化

    link标签的rel属性设置dns-prefetch,提前获取域名对应的IP地址 用户与服务器的物理距离对响应时间也有影响。 内容分发网络(CDN)是一组分散在不同地理位置的 web 服务器,用来给用户更高效地发送内容。典型地,选择用来发送内容的服务器是基于网络距离的衡量标准的。 优

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包