Congestion Control for Large-Scale RDMA Deployments

文章目录

  • Introduction
  • DCQCN
  • Buffer Setting

Introduction

PFC是粗粒度的流量控制机制,在端口层面发挥作用,不区别不同的流。这会导致很多弊端,比如不公平,受害流等。

解决PFC限制的解决方法是flow-level的拥塞控制,DCQCN就是一种RoCEv2上的end-to-end的拥塞控制协议。

DCQCN

DCQCN包括sender(reaction point, RP),switch(congestion point, CP),receiver(notification point,NP)。

CP算法:在switch上,使用以下的概率函数对数据包进行ECN标记。
在这里插入图片描述

NP算法:ECN标记的包到达NP(receiver),表示网络中出现了拥塞。NP发送CNP(Congestion Notification Packets)包,将这个信息传达给sender。对于一个流,如果一个标记的包到达,并且在之前的N微秒内没有CNP被发送,CNP就立即被发送。也就是说,对于每个流, 每N微秒最多发送1个CNP包。作者将N设置为 50 μ s 50\mu s 50μs

RP算法:当一个RP(sender)收到一个CNP时,它减少它的当前发送速率( R C R_C RC)并且更新速率降低因子( α \alpha α),最后记录当前的速率为之后恢复过程的目标速率( R T R_T RT)。
在这里插入图片描述

当RP每K个时间单元没收到反馈时,它就更新 α \alpha α。注意K必须比CNP产生间隔要大。作者将K设置为 55 μ s 55\mu s 55μs
α = ( 1 − g ) α \alpha = (1-g)\alpha α=(1g)α

而且,RP使用计时器和字节计数器增加发送速率。字节计数器每B字节增加一次速率,计时器每T个时间单元增加一次速率。计时器确保流能够快速恢复,即使在它的速率降到一个很低的值时。速率恢复包括两个主要的阶段,第一个阶段是fast recovery,执行如下的F=5轮迭代,以快速接近目标速率 R T R_T RT
R C = ( R T + R C ) / 2 R_C = (R_T + R_C) / 2 RC=(RT+RC)/2

fast recovery后面跟着additive increase,目标速率每次增加 R A I R_{AI} RAI,当前速率缓慢地靠近目标速率:
在这里插入图片描述

状态机如下:
在这里插入图片描述

Buffer Setting

DCQCN需要平衡两个冲突的请求:

  1. PFC不能触发得太早(不能在ECN发送拥塞反馈之前触发)
  2. PFC不能触发得太晚(导致buffer overflow,造成包丢失)

Headroom buffer t f l i g h t t_{flight} tflight:发送到上游设备的PAUSE消息需要一段时间来到达和发挥作用。为了避免包丢失,PAUSE发送者需要保留足够的buffer空间,以处理这段时间内接收的包。这包括PAUSE被发送时in flight的包,以及上游设备处理PAUSE时发送的包。作者将每个端口,每个优先级的 t f l i g h t t_{flight} tflight设为22.4KB。

PFC Threshold t P F C t_{PFC} tPFC:这是一个进入队列在PAUSE发送到上游设备之前,能够增长到的最大大小。在每个进入端口,每个PFC优先级都有它自己的队列。因此,如果switch buffer的总大小为B,有n个端口,需要遵守 t P F C ≤ ( B − 8 n t f l i g h t ) / ( 8 n ) t_{PFC} \leq (B - 8nt_{flight})/(8n) tPFC(B8ntflight)/(8n)。当队列降低到 t P F C t_{PFC} tPFC以下两个MTU时,交换机发送RESUME消息。

ECN Threshold t E C N t_{ECN} tECN:一旦外出队列超过这个阈值,交换机开始标记数据包(即上图中 K m i n K_{min} Kmin)。为了使DCQCN有效,此阈值必须足够低,以使PFC阈值在交换机有机会用ECN标记数据包之前不会被触及。 t E C N t_{ECN} tECN是外出队列阈值, t P F C t_{PFC} tPFC是进入队列阈值。

在此基础想法上,作者设置了阈值的大小。

除此之外,作者在各种参数上进行了测试,从而选出最佳的参数大小。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试 - 数组组成的最小数字(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…

大白菜清除开机密码

1. 下载U盘启动工具 http://www.dabaocai.com/download/ 2. 下载好后,双击安装包,制作启动盘 3. 启动盘制作完成后,重启电脑,在出现电脑图标时开始不断的按快捷键; 4.选择U盘项进入 5.打开桌面所有程序 ---系…

win11下制作u盘pe系统(电脑店,大白菜),提示程序组件不完整

有可能是杀毒软件的原因,我的是因为系统自带的杀毒软件的原因 可以这样关闭 依次打开 设置->隐私和安全性->windows安全中心->打开windows安全中心 打开windows安全中心后选择左侧的病毒和威胁防护 再选择管理设置 然后关闭实时保护即可 关闭后就可以重新制作pe盘了 …

用大白菜装centos7_大白菜安装centos7 踩坑记

1.准备一个U盘,安装大白菜。这个去大白菜官网下载安装就可以了 安装大白菜的时候最好选择FAT32(2021.1.7记录) 2.U盘装完大白菜后U盘会被分为两个主分区 一个盘是大白菜系统的,另外一个盘放一些工具的。 DBC里面就是放的一些工具 比如磁盘管理工具 3.把Centos7的镜像放入到DB…

Linux系统切换用户后只显示$问题解决

问题描述: unbantu操作系统切换为es用户后没有tab键没有补全功能 问题分析 创建用户的时候未指定shell类型,默认的shell为/bin/sh,而不是/bin/bash。 cat /etc/passwd查询结果 es:x:1001:1001::/home/es:/bin/sh解决方案 把对应用户的…

AEB落地:摄像头与毫米波雷达的融合

☛ 我们的生活中,总有各种场合需要证明自己。 内心不够坚定的时候,总是活在不断证明自己的循环中。新人刚入职,会努力证明自己是有能力的;遇到心动的男神,会努力证明自己值得被爱;受到质疑否定&#xff0…

历史上的重大软件BUG启示录 第6篇---蠕虫“冲击波”

(图片来源于网络) RPC(远程过程调用)是一种进程间通讯机制,最初由 Sun 公司提出,目前为 IETF 标准协议。RPC 协议允许一台计算机上的程序执行另一台远程系统上的代码。Windows的RPC服务也是以RPC为基础开发…

技术活-一阶后向差分

众所周知,角度是比较容易测量的物理量,但是角速度通常难以直接测量,而此时通常采用的方法是一阶差分来近似求解。 本例程用来讲解基于Siemens S7-1200 PLC实现角度速的测量。所用到的硬件: 1200PLC: CPU 1214 AC/DC/Rl…

MVVM?继续搞一波

前言 又是好久不见了,真的不是因为我懒,是因为公司目前活确实有点着急,所以每天在忙公司的事情。 在五月下旬的时候写过一篇MVVM的文章:MVVM?瞎搞一波?。当时写的时候内心其实很慌,怕写的不好…

华为:活下来!或将卖掉 X86 服务器业务?

点击关注公众号,回复“1024”获取2TB学习资源! 2021 年 8 月 6 日,华为公司公布上半年公司整体经营业绩数据,净利润是实现增长的。 数据显示,2021 年上半年,华为实现销售收入 3204 亿元,同比下降…

FFT快速傅立叶变换在示波器中的用法

大多数示波器上都有个FFT功能,也叫快速傅立叶变换,但很多人不了解这个功能是做什么用的,百度以后又会遇到各种各样的高数公式,看的一头雾水,遂而放弃这块知识。 我们来看百度百科的解释: FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、…

一大波硕士即将来袭

前几天有一个读者朋友,也是程序员,在微信和我说:研究生扩招了,他要不要把专科学历提高一下? 我查了一下新闻,确实:2020 年硕士研究生扩招 18.9 万人,扩招向临床医学、公共卫生、人工智能等专业倾向。 今天和大家说说硕士研究生扩招这事。 1. 一直在扩招 硕士研究生(…

高斯滤波在图像处理中的应用

卷积: 相信很多时候,当我们在看到“卷积”时,总是处于一脸懵逼的状态,不但因为它的本义概念比较难理解,还因为它在不同的应用中发挥出的变幻莫测的作用也时常让人迷糊。但这些应用其实本质上都是同一种东西&#xff0…

示波器FFT频谱分析的使用方法和注意点

对信号中的频率分量进行分析是十分重要的,因为他们常常会在设计中引起噪声,一旦超出允许的公差,就可能进而导致器件发生故障功能失常。严重的还可能导致电压尖峰,损坏器件。如果我们在设计的时候没有进行正确的测试,那…

第四讲:详谈波分设备在双活方案中应用

容灾通信链路设计是保障用户在合理的通信成本下成功实现容灾系统建设的重要步骤。不同的通信链路有不同的属性,如距离支持、带宽能力等,而不同的容灾技术和容灾应用对通信链路的要求并不相同。 容灾通信链路的选择 对于容灾方案,无论采用哪种容灾通信链路,都需要从信息系…

生成两路PWM波相位差90°的方法

1、需要一个定时器两个通道,定时器模式设置为输出比较模式(还有另外一种模式---PWM模式) 输出比较模式下不关心CNT比 CCR值大还是小,只关心CNT和CCR值什么时候相等,两个值相等时,就翻转输出电平。在PWM模式…

智能运营新功能,多波次营销全触达

推送触达率不高,转化效果不好? 消息推送时下已经是APP日常运营的重要工具,好的消息推送能够有效地增强用户黏性、提升用户体验,然而一切好的消息推送都是建立在能够到达用户终端为前提的,所以消息推送的到达率尤为重要…

基于python+openCV的中值滤波

先直接来一个33的吧 def median(src_img, filter_size, channels):# 首先,定义一个大小为9的0数组# list [[0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0]]list np.zeros([3, 9])# print(list[1][4]…

如何用FPGA输出正弦波、三角波等

如何用FPGA输出正弦波、三角波等 一、开发工具二、步骤1、设置ROM IP核2、程序编写 一、开发工具 1、 软件平台:Quartus ll 2、芯片:不重要 二、步骤 1、设置ROM IP核 设置ROM IP核,根据使用的DA芯片选择对应的位数和数据量,选…

示波器的三种触发模式详解

一、什么是示波器的触发模式? 示波器的“触发”就是使得示波器的扫描与被观测信号同步,从而显示稳定的波形。为满足不同的观测需要,需要不同的“触发模式”。示波器的基本触发模式有三种: 第一种是“自动模式(AUTO&am…