无损以太网的ROCE革命,队列的缓存空间优化分析

1560be46c3512baa4768a4922d8698d0.jpeg 

ROCE无损以太网,队列的缓存空间优化

   

多级缓存架构优化芯片性能:
* 缓存空间细分为芯片级、端口级和队列级,实现精细管理。
* 无损队列引入Headroom缓存空间,确保数据完整性。

   在芯片层面:

e986731050cd410b18617fd9863be381.jpeg


静态缓存为端口提供保证的缓存空间,采用独占分配机制。一旦端口分配到缓存资源,即使闲置,也不会被其他端口占用。这确保了端口始终拥有预留的缓存容量。

动态缓存:芯片上 Packet 缓存包含动态和静态部分。动态缓存进一步划分为 Service Pool 和 Headroom Pool。
Service Pool 专用于满足流量需求,而 Headroom Pool 为意外流量高峰提供缓冲。这两个分区独立运作,无法相互使用空闲缓存。

  • Service Pool:服务于端口级的Port Service缓存划分,所有端口级的Port Service缓存共享同一个芯片级Service Pool。例如,如果芯片级Service Pool缓存容量为100KBytes,端口1和端口2的Port Service缓存需求同为80KBytes。当某一时刻端口1已占用70KBytes的Port Service缓存时,端口2理论上最多还能再使用30KBytes的Port Service缓存。
  • Headroom Pool:针对端口级的Port Headroom缓存进行划分,所有端口级的Port Headroom缓存同样共享芯片级的Headroom Pool。假定芯片级Headroom Pool缓存大小设定为50KBytes,端口1和端口2的Port Headroom缓存需求均为40KBytes。在某一时间点,若端口1已占用30KBytes的Port Headroom缓存,那么端口2在此情况下最多还能额外占用20KBytes的Port Headroom缓存空间。

   在端口层面:

a323d9823da3c1a499537901adde5625.jpeg

1. Port Guaranteed

Queue Guaranteed的缓存资源遵循独占分配原则,专用于分配给队列级缓存,确保队列资源隔离。这种设计防止队列间缓存共享,确保每个队列拥有独立的缓存空间,最大化资源利用效率。

2. Port Service

Port Service缓存主要用于分配给队列级的Queue Service缓存。所有队列级的Queue Service缓存共享同一端口级别的Port Service缓存资源。

举例来说,假设端口级别的Port Service缓存容量为80KBytes,队列1和队列2的Queue Service缓存需求量都设置为60KBytes。在某一时间节点,若队列1中的数据包已占用50KBytes的Queue Service缓存空间,那么队列2此时最多还可使用30KBytes的Queue Service缓存空间。

3. Port Headroom

Port Headroom缓存区段用于分配给队列级的Queue Headroom缓存,所有队列级的Queue Headroom缓存均共享同一端口级别的Port Headroom缓存资源。假如端口级别的Port Headroom缓存总量为40KBytes,而队列1和队列2的Queue Headroom缓存需求均为30KBytes。在某一具体时刻,若队列1中的数据包已占据了25KBytes的Queue Headroom缓存空间,那么队列2此时最多还能再分配到15KBytes的Queue Headroom缓存空间。

   在队列层级:

35c4258aa2211e21b1e04010257ed670.jpeg

1. Queue Guaranteed

Queue Guaranteed 确保队列的基本报文传输能力,即使未获取队列服务缓存,也能转发一定量的报文。它包括两个阶段:
- 入队列 Queue Guaranteed:报文进入队列前
- 出队列 Queue Guaranteed:报文离开队列前

2. Queue Service

Queue Service 应对流量激增,为队列提供临时缓存空间。包含入队列和出队列,当待转发报文大小小于缓存剩余空间时,才能加入并转发。否则,报文将被丢弃。

3. Queue Headroom

Queue Headroom是网络中宝贵的缓冲空间,它确保即使在暂停帧通知期间,新报文也能被安全接收,避免因缓存不足而丢失数据。它充当保护屏障,防止报文丢失,从而确保网络通信的顺畅和稳定。

避免报文丢失风险:
芯片内部的单一服务池可能导致无损报文丢失,当有损报文流量激增时,它们会占用服务池。
为了防止这种情况,应规划无损报文队列的头部空间,以确保充足的存储空间应对流量激增。

优化缓存分配机制,释放设备转发潜力。先进的无损队列优化功能合理分配缓存空间,确保在不同流量负载下无损队列始终保持零丢包高效转发。

通过缓存空间优化,可划分芯片共享缓存,创建无损和有损队列。无损队列的缓存大小基于Headroom Pool和无损队列自身的Service Pool,确保不丢包转发。自动或手动配置Service Pool和Headroom Pool,优化无损队列的性能。

e964167df62276a326489eeb50c26ebb.jpeg


 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

相关推荐

  1. 实现

    2024-04-22 07:06:03       39 阅读
  2. rabbitmq 之 无法自动创建问题

    2024-04-22 07:06:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 07:06:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 07:06:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 07:06:03       87 阅读
  4. Python语言-面向对象

    2024-04-22 07:06:03       96 阅读

热门阅读

  1. 搜索引擎中的倒排索引是什么

    2024-04-22 07:06:03       37 阅读
  2. 【数据结构】冒泡排序

    2024-04-22 07:06:03       35 阅读
  3. docker安装mysql,允许远程连接

    2024-04-22 07:06:03       35 阅读
  4. React Router 6 路由重定向与编程式导航指南

    2024-04-22 07:06:03       33 阅读
  5. 第4章 EC2 - 4.3 密钥对

    2024-04-22 07:06:03       36 阅读
  6. 欧鹏RHCE 第三次作业

    2024-04-22 07:06:03       33 阅读
  7. Pytorch或Tensorflow 深度学习库安装 (简易版)

    2024-04-22 07:06:03       33 阅读
  8. JVM 引用的分类

    2024-04-22 07:06:03       33 阅读
  9. vue3 依赖-组件tablepage-vue3版本1.0.2更新内容

    2024-04-22 07:06:03       35 阅读