数据中心传输(5):分流同质流量消除不确定性

2024-04-12 05:20

本文主要是介绍数据中心传输(5):分流同质流量消除不确定性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据中心传输(1):云数据中心传输的出路
数据中心传输(2):再谈数据中心网络传输
数据中心传输(3):数据中心网络不是互联网
数据中心传输(4):提升网络传输性能的误区

本文接着上面这些继续,希望这是倒数第二篇。

统计复用网络要用统计的方式去规划使用,将所有流量扔进一个只携带 buffer,没有任何 arq,不支持任何 qos 的网络就足以保证可用性,剩下还要做啥,无非是想让传输效率更高罢了。

吞吐是资源决定的,但抖动可以优化。抖动的根源是不同尺度的统计特征相互影响所致,隔离不同的统计尺度就行了。

统计的本质是概率,而概率是精确度的度量,概率是精确度量的反面。统计复用网络本质上在处理突发,而突发无论从频度还是长度而言都是概率,如果拥有这些概率的分布特征,自然就获得了更高精确度,处理突发就会高效。

如果通过数据采集分析获知数据中心有 20% 流量持续时间 1~5us,有 30% 流量持续时间 100~120us,有 30% 流量持续时间 2000us 以上,我们就有理由将这 3 类流量视为该数据中心特征流量,为其分别创建通道,并将符合这些特征的流量导入各自通道,最小化了方差。

我一再强调的按突发长度分流,分流,分流,记住这不是一个算法,不用纠结它怎么实现,它很简单后面会说,这个分流只是一个前置动作,把统计方差缩小,用同质交换弹性。

提高统计复用效率的本质在于消除不确定性,因材施教。

因材施教的反面是有教无类,哪个好?把学霸和学渣放在一个班级,试图因材施教,要怎么做?即使把资源倾向学霸,学渣还是会扰乱秩序而影响学霸,把资源分给学渣,也不会被有效利用。按照统计复用原则,他们就应该在一个班,但显然这极其低效,因为学霸和学渣之间没有共识,还是得按成绩分班才高效。

分流类似分班,目标是让同一通道流量对拥塞和丢包原因有共识,剩下的拥塞控制该怎么玩还怎么玩。既然要优化了,为啥还非要死守着把所有流量丢进一个网络这基本信条,试图通过一个万能的算法自适应对待它们呢。想因材施教,首先应把相似长度的流量丢进一个网络通道。

分流的核心主要是要把短突发流量和 capacity–searching 流量隔离,一旦隔离,短突发通道配置小带宽,大 buffer,capacity–searching 通道配置大带宽,小 buffer 就能解决大部分问题。若不隔离,不管配置多大带宽,多大 buffer 都还是乱糟糟,主要还是两类流量对 buffer 用法没有共识,短突发流量用 buffer 做暂存,而 capacity–searching 流量则借 buffer 做 probe(无论 aimd 还是 bbr),二者的干扰后果可想而知,短突发流量瞬间占满 buffer 又瞬间腾出,capacity–searching 流量会因此抖动(无论主动退避还是丢包重传,或者仅仅被挤压),而 capacity-searching 流量在统计意义上会持续稳定占据一定量 buffer(甚至 buffer 倾向于将满未满),这将降低 buffer 吸收突发的能力而造成短突发丢包。

现有的 queuing policy,qos 倾向于包分类 enqueue,然后在 queue 间执行调度,而分类标准或主观或无法表示流量特征,多数仅仅根据业务重要性区分了优先级,太复杂等于无。

我们讨论操作系统调度时,作为统计复用系统,将所有进程,中断无差别扔到所有 cpu 上就能保证可用性,但我们也曾亲眼目睹小包中断是如何拖慢计算进程的,本质上也还是长任务和短任务对时间片没有共识,放在一起调度当然就有问题,任何调度策略都帮不了,那么显然就是设置优先级,绑核对不对,但为什么绑核效果并没那么好。优先级,绑核无异于网络中的优先级队列,资源预留,这破坏了统计复用基础,比较时兴的做法反而是 cgroup,想想为什么。

网络也需要一个 cgroup 的机制,至于流量如何往里面扔,那是另一个问题。

前提一定是获得数据中心的流量分布特征。业务在 send 的时候自己肯定知道长度,按 getlength 的结果打签即,或者干脆事先硬编码,getlength 在 1~5mtu 之间的 send 进入通道 1 用 homa,getlength 在 6~10mtu 的进入通道 2 用硬 pacing,而 1000~5000mtu 的则使用 cubic,bbr。总之还是要在传输频度和长度两个维度量化从 “紧急重要” 到 “不紧急不重要” 的流量类型。

短突发流量往往没有足够的时间来感知和响应拥塞而适应带宽,用足够大的 buffer 缓存它们就是最简单的方法,而大象流存活时间足够久,以至于有足够时间探测适应带宽并公平收敛,因此用较小的 buffer 就能满足。甚至只让 buffer 大小与通道流量长度负相关,根本不需要配置任何调度规则都能预期有好的效果。

别做弹性。流量不可预期的话根本做不到弹性自适应。觉得短突发通道大 buffer 在很长时间闲置浪费而为其它通道提供弹性,又拐回到了老路,引入的复杂性将直接抵消弹性的收益甚至会代偿。能固化资源的就别指望弹性自适应,随机环境中任何算法都斗不过概率,要弄巧成拙的,当然,有 kpi 压力的另说。

只有一个原则,网络是报文要尽快离开的地方,源目之间,专线最短,任何花哨的算法策略都是添堵,多想想怎么模拟专线。如果实在怕被开除,非得卷点啥,那就试试开大会,写论文,写写公众号吧。

浙江温州皮鞋湿,下雨进水不会胖。

这篇关于数据中心传输(5):分流同质流量消除不确定性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896210

相关文章

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

WebShell流量特征检测_哥斯拉篇

90后用菜刀,95后用蚁剑,00后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对后三款经典的webshell管理工具进行流量分析和检测。 什么是一句话木马? 1、定义 顾名思义就是执行恶意指令的木马,通过技术手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行 2、特点 短小精悍,功能强大,隐蔽性非常好 3、举例 php一句话木马用php语言编写的,运行

远程桌面文件传输异常或者取消传输后一直显示正在取消

环境: Window Servers 2008 R2 摘要说明: 本篇文章主要讲述当应用远程桌面进行文件传输时,若因网络等导致进程中断,再次传输时则不能进行文件传输;或者传输时取消传输,然后一直显示正在取消。此时可以通过重启window的rdpclip.exe进程来解决此问题 步骤 1.关闭rdpclip.exe进程 远程桌面连上上传输异常的服务器,打开资源管理器,在进程列关闭rdpc

Java传输本地目录到远程服务器

在使用Java进行开发时,有时需要将本地目录中的文件复制或传输到远程服务器上。这种场景在部署应用程序或进行数据迁移时尤为常见。JSch库提供了一种简便的方法来实现这一功能。以下是从Codekru网站获取的信息摘要,并结合相关内容,展示如何使用JSch库实现从本地计算机复制整个目录到远程服务器的过程。 准备工作 首先,确保您的项目中已经包含了JSch库的依赖。如果您使用Maven作为构建工具,可