首页 > 其他分享 >RDMA 控制器 【ChatGPT】

RDMA 控制器 【ChatGPT】

时间:2023-12-09 22:35:39浏览次数:38  
标签:控制器 hca RDMA cgroup rdma ChatGPT 资源

RDMA 控制器

1. 概述

1-1. 什么是 RDMA 控制器?

RDMA 控制器允许用户限制给定一组进程可以使用的 RDMA/IB 特定资源。这些进程是使用 RDMA 控制器进行分组的。

RDMA 控制器定义了可以为 cgroup 的进程限制的两种资源。

1-2. 为什么需要 RDMA 控制器?

目前,用户空间应用程序可以轻松占用所有的 RDMA 动词特定资源,如 AH、CQ、QP、MR 等。这会导致其他 cgroup 中的应用程序或内核空间的 ULP 可能根本没有机会分配任何 RDMA 资源。这可能导致服务不可用。

因此,需要 RDMA 控制器来限制进程的资源消耗。通过这个控制器,可以对不同的 RDMA 资源进行核算。

1-3. RDMA 控制器是如何实现的?

RDMA cgroup 允许对资源进行限制配置。Rdma cgroup 使用资源池结构,对每个 cgroup、每个设备进行资源核算。每个这样的资源池由 rdma cgroup 限制,每个给定资源池最多可以有 64 个资源,如果需要的话可以随后进行扩展。

这个资源池对象与 cgroup css 相关联。在大多数情况下,每个 cgroup、每个设备通常有 0 到 4 个资源池实例。但并没有限制它的数量。目前,单个 cgroup 中可能存在数百个 RDMA 设备,可能无法得到最佳处理,但是也没有已知的使用情况或要求需要这样的配置。

由于 RDMA 资源可以从任何进程分配,并且可以由共享地址空间的任何子进程释放,因此 RDMA 资源始终由创建者 cgroup css 拥有。这允许进程从一个 cgroup 迁移到另一个 cgroup,而不需要进行资源所有权的复杂转移;因为由于 RDMA 资源的共享性质,实际上并不存在这样的所有权。在 css 周围链接资源还确保了在进程迁移后可以删除 cgroups。这也允许在活动资源的情况下进行进程迁移,尽管这不是主要的使用情况。

每当发生 RDMA 资源计费时,所有者 rdma cgroup 将返回给调用者。在取消资源时应传递相同的 rdma cgroup。这也允许具有活动 RDMA 资源的进程向新所有者 cgroup 计费新资源。它还允许从先前计费的 cgroup 中取消迁移到新 cgroup 的进程的资源计费,尽管这不是主要的使用情况。

在以下情况下创建资源池对象:(a) 用户设置了限制,但对于感兴趣的设备,之前没有资源池存在。(b) 没有配置资源限制,但 IB/RDMA 栈尝试计费资源。这样在应用程序在没有限制的情况下运行时,它们可以正确地取消计费,而在取消计费时强制执行限制,否则使用计数将会降到负值。

如果所有资源限制都设置为最大值,并且它是最后一个被释放的资源,资源池将被销毁。

如果要删除/取消配置特定设备的资源池,用户应将所有限制设置为最大值。

IB 栈遵守 rdma 控制器强制执行的限制。当应用程序查询 IB 设备的最大资源限制时,它返回用户为给定 cgroup 配置的限制和 IB 设备支持的限制的最小值。

RDMA 控制器可以核算以下资源。

  • hca_handle

    • HCA 句柄的最大数量
  • hca_object

    • HCA 对象的最大数量

2. 使用示例

配置资源限制:

echo mlx4_0 hca_handle=2 hca_object=2000 > /sys/fs/cgroup/rdma/1/rdma.max
echo ocrdma1 hca_handle=3 > /sys/fs/cgroup/rdma/2/rdma.max

查询资源限制:

cat /sys/fs/cgroup/rdma/2/rdma.max
# 输出:
# mlx4_0 hca_handle=2 hca_object=2000
# ocrdma1 hca_handle=3 hca_object=max

查询当前使用情况:

cat /sys/fs/cgroup/rdma/2/rdma.current
# 输出:
# mlx4_0 hca_handle=1 hca_object=20
# ocrdma1 hca_handle=1 hca_object=23

删除资源限制:

echo mlx4_0 hca_handle=max hca_object=max > /sys/fs/cgroup/rdma/1/rdma.max

标签:控制器,hca,RDMA,cgroup,rdma,ChatGPT,资源
From: https://www.cnblogs.com/pengdonglin137/p/17891921.html

相关文章

  • 内存资源控制器实现备忘 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/memcg_test.htmlMemoryResourceController(Memcg)ImplementationMemo最后更新时间:2010/2基础内核版本:基于2.6.33-rc7-mm(34版本的候选版本)。由于虚拟内存变得复杂(其中一个原因是memcg...),memcg的行为也变得......
  • 网络分类器 cgroup 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/net_cls.html网络分类器cgroup网络分类器cgroup提供了一个接口,用于给网络数据包打上一个类别标识符(classid)。流量控制器(tc)可以用来为来自不同cgroup的数据包分配不同的优先级。此外,Netfilter(iptables)也可以......
  • 网络优先级cgroup 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/net_prio.html网络优先级cgroup网络优先级cgroup提供了一个接口,允许管理员动态设置由各种应用程序生成的网络流量的优先级。通常情况下,应用程序会通过SO_PRIORITY套接字选项设置其流量的优先级。然而,这并不总是......
  • 进程数量控制器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/pids.html进程数量控制器摘要进程数量控制器用于允许cgroup层次结构在达到一定限制后阻止任何新任务进行fork()或clone()。由于很容易达到任务限制而不触及任何已设置的kmemcg限制,PID是一种基本资源。......
  • HugeTLB 控制器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/hugetlb.htmlHugeTLB控制器HugeTLB控制器可以通过首先挂载cgroup文件系统来创建。#mount-tcgroup-ohugetlbnone/sys/fs/cgroup通过上述步骤,初始或父HugeTLB组将在/sys/fs/cgroup中可见。在启动......
  • 设备白名单控制器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/devices.html设备白名单控制器1.描述实现一个cgroup来跟踪和强制设备文件的打开和mknod限制。设备cgroup将设备访问白名单与每个cgroup关联起来。白名单条目有4个字段。'type'是(all)、c(字符)或......
  • Cgroup Freezer 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/freezer-subsystem.htmlCgroupFreezercgroup冷冻器对于批处理作业管理系统非常有用,该系统可以启动和停止一组任务,以便根据系统管理员的需求安排机器的资源。这种程序通常用于HPC集群,以安排对整个集群的访问。cgr......
  • CPUSETS 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/cpusets.htmlCPUSETS1.Cpusets1.1什么是cpusets?Cpusets提供了一种机制,用于将一组CPU和内存节点分配给一组任务。在本文档中,“内存节点”指的是包含内存的在线节点。Cpusets限制了任务的CPU和内存放置......
  • 控制组 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/cgroups.html控制组由[email protected]编写,基于CPUSETS来自CPUSETS的原始版权声明:部分版权所有(C)2004BULLSA。部分版权所有(c)2004-2006SiliconGraphics,Inc.由[email protected]修改......
  • Block IO 控制器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/blkio-controller.htmlBlockIO控制器概述cgroup子系统"blkio"实现了块IO控制器。在存储层次结构中,似乎需要各种类型的IO控制策略(如比例带宽、最大带宽),无论是在叶节点还是在中间节点都需要。计划是使用......