隔离流量优化网络传输

不要将长流和短突发流(或者大象流和老鼠流)混部在一起,我建议用切片或虚通道将它们在全链路范围彻底隔离,而不仅仅在交换机上配合着大肆宣讲的高端包分类算法配置一些排队调度。

也不必扯泊松到达,帕累托分布,这些概念在论文建模时再见,单单理解为什么要按突发长度分流(即 burst 率)以及不分流有哪些坏处,初中几何知识就直观了。

设 n 条突发长度分别为 a1,a2,…,an 的流 f1,f2,…,fn 共享链路,每条流原子突发,不可从中切断,且 a1 + a2 + … + an = K,即这些流的突发长度均值为常数,问新流 fx 进入链路需要等待多久才能获得传输服务。

解释一下突发长度的原子性,纯为了处理方便而取了极端,另一个极端是所有流都以固定 pacing rate 时分复用链路,而现实处于两个极端之间。

先图示一下新流和 a1 … an 冲突的概率以及对应的平均等待时间:
在这里插入图片描述
整个问题如下图描述:
在这里插入图片描述

所以你看,让共享链路的流突发长度趋于相等,等待时间就能趋于最小,反过来如果它们之间差异很大,等待时间就趋于更长。

以上这个图解是我从经典教材习题变化而来的,原始问题表述之一是 “假设公共汽车平均 10 分钟到达一个特定公交车站,到达之间的时间呈 ‘指数分布’,若一个人在一随机时间到达公交车站,那么他等车时间的期望值是多少?”
在这里插入图片描述
本文对这问题不解释。

要深入分析流隔离时才需要建模,用指数分布还是帕累托分布只是一个选择,结论不会变。但现实数据用帕累托分布拟合得更好,因为网络流量存在自相似性,特别是数据中心内部的流量,往往存在长程依赖。

用排队论建模分析时,使不使帕累托分布不重要,但不建议用指数分布,因为流量之间存在依赖关联并非完全独立,所以基于独立事件的指数分布导出的结论往往有悖直觉,又得 battle。

在实践中,存在一种 sita(size-interval-task-assignment) 任务分配策略,背后就是我这里描述的按照突发长度分流,实践表明,它的平均排队时间(或队列长度)指标在绝大多数情况下优于 round-robin,大多数情况下优于 jsq(join-the- shortest-queue)。

p99 时延高往往是抖动而不是绝对时延高,所以你会发现 p50 并不高,甚至 p90 都不高。如果绝对时延高,p50 都能直接起飞,非常容易发现。绝对时延高往往是 bufferbloat 引发,也容易解决。困扰经理的是去抖动,而去抖动的方法就是分流,听我的没错。

隔离了长短流,肉眼可见的是抖动下降,但绝对排队时间的下降往往要用工具度量,它都不抖了,经理就觉得正常了,不会没事找事去关注队列长度,只有亲自度量才会发现时延绝对值也变低了,都是好事。

再说下隔离长度流后对长流的好处,长流可用非常简单(very simple)的拥塞控制算法对共享链路分时复用,而交换机简单 round-robin 甚至 random 即可,我此前的 inflight 守恒算法正当用武之地。

老问题,咋区分流的突发长短?别问我,业务自己知道,写代码时多写个 getlength 就不用天天跟系统 oncall 掰扯了,业务总得自己做点什么。网络侧要做的,要统计流突发长度分布,分布,单流 buffer 占用率分布,依照这些分布选取截止值。

引申一下,不光流突发长度由于长程依赖近似帕累托分布,流长度本身也应该近似帕累托分布,依这个推论,主机侧内存管理也可以分区池化来预防抖动。

大概也就这两个东西可圈可点,长短分流和 inflight 守恒算法。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681643.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习CSS3动画教程:手把手教你绘制跑跑卡丁车

学习之前,请先听一段音乐:等登,等登,等登等登等登!没错,这就是我们当年玩的跑跑卡丁车的背景音乐,虽然后来有了QQ飞车,但还是更喜欢跑跑卡丁车,从最初的基础板车&#xf…

ATFX汇市:英央行5月利率决议维持5.25%利率不变概率较高

ATFX汇市:英国央行将于今日19:00公布5月利率决议结果,市场普遍预期其将维持5.25%的基准利率不变。英国央行行长贝利将于今日19:30召开货币政策新闻发布会,如果表态偏鹰,英镑币值将受到提振。从英国央行基准利率的走势图来看&#…

可视化智慧校园:山海鲸的全面解析

在数字化浪潮席卷全球的今天,教育领域的变革也势不可挡。山海鲸可视化智慧校园解决方案,以其独特的创新理念和强大的技术支撑,为校园信息化建设提供了全新的视角和解决方案。 一、方案概述 山海鲸可视化智慧校园解决方案是一套集数据分析、…

netsh命令

netsh是本地或远程计算机Windows 2000网络组件的命令行和脚本实用程序。为了存档或配置其他服务器,netsh实用程序也可将配置脚本保存在文本文件中。netsh实用程序是一个外壳,通过附加的“netsh帮助DLL”可支持多个Windows 2000组件。 有两种方式可以运行…

MySQL mysqldump备份恢复

目录 1. 备份类型 2. 逻辑备份VS物理备份 3. mysqldump工具 3.1 备份命令格式 3.2 备份选项 3.3 备份全库(结构和数据) 3.4 备份全库(仅结构) 3.5 备份全库(仅数据) 3.6 备份单个数据库(结构和数据) 3.7 备份单个数据库(仅结构) 3.8 备份单个数据库(仅数据) 3.9…

容联云孔淼:大模型落地与全域营销中台建设

近日,由金科创新社主办的2024区域性商业银行数智化转型研讨会顺利召开, 容联云产业数字云事业群副总经理、诸葛智能创始人孔淼受邀出席,并分享数智化转型实践经验。 他分享了容联云两大核心产品,“大模型应用容犀Copilot”在金融营…

uniapp怎么使用jsx

安装vitejs/plugin-vue-jsx npm install vitejs/plugin-vue-jsx -Dvite.config.js配置 import { defineConfig } from "vite"; import uni from "dcloudio/vite-plugin-uni"; import vueJsx from vitejs/plugin-vue-jsxexport default defineConfig({plu…

基于51单片机的智能垃圾桶仿真设计( proteus仿真+程序+设计报告+原理图+讲解视频)

这里写目录标题 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接: 基于51单片机智能垃圾桶仿真设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus8.9及以上 程序编译…

docker-compose集成elk(基于logstash+filebeat)采集java和nginx日志

1.准备compose.yml编排式文件 services: #日志信息同步logstash:container_name: logstashimage: docker.elastic.co/logstash/logstash:7.17.14 #logstash:command: logstash -f /usr/share/logstash/pipeline/logstash.confdepends_on:- elasticsearchrestart: on-failurepo…

「 网络安全常用术语解读 」漏洞利用预测评分系统EPSS详解

1. 概览 EPSS(Exploit Prediction Scoring System,漏洞利用预测评分系统) 提供了一种全新的高效、数据驱动的漏洞管理功能。EPSS是一项数据驱动的工作,使用来自 CVE 的当前威胁信息和现实世界的漏洞数据。 EPSS 模型产生 0 到 1&…

视频号小店常见问题解答,新手做店最关心的问题!

大家好,我是电商小V 视频号小店可以说是今年最热门的一个风口期项目,想去做的人也是日益增多,也是凭借着自身的流量吸引了很多玩家的入驻, 但是对于很多玩家,视频号小店就是一个全新的项目,一个全新的领域&…

服务异步通讯MQ

同步调用存在的问题: 异步调用方案: RabbitMQ安装: 第一种:在线拉取 docker pull rabbitmq:3-management 第二种:将已有的安装包放入再用load加载 我这里放到tmp包里边 然后:cd /tmp docker load -i mq.tar 加载进去 然后运行mq容器 docker run \-e RABBITMQ_DEFAULT_USER…