ACK灵骏Pod使用RDMA

更新时间:2025-02-19 02:09:13

本文档介绍如何在ACK灵骏集群中配置和使用RDMA(RemoteDirect Memory Access)技术,实现高性能容器网络通信。RDMA技术可显著降低网络延迟并提升吞吐量,适用于高性能计算(HPC)、AI训练、分布式存储等对网络性能要求严苛的场景。

RDMA简介

RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐量、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络将数据直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要消耗多少计算机的处理能力。它消除了外部存储器复制和上下文切换的开销,因此能节省内存带宽和CPU周期,以改进应用系统性能。

ACK灵骏节点使用RDMA

  1. 确认RDMA Device Plugin已正常运行,且在每个有RDMA灵骏节点都已启动。

    # kubectl get ds ack-rdma-dp-ds -n kube-system
    NAME             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    ack-rdma-dp-ds   2         2         2       2            2           <none>          xxh
  2. 检查节点是否拥有资源rdma/hca

    # kubectl get node e01-cn-xxxx -oyaml
    ...
      allocatable:
        cpu: 189280m
        ephemeral-storage: "3401372677838"
        hugepages-1Gi: "0"
        hugepages-2Mi: "0"
        memory: 2063229768Ki
        nvidia.com/gpu: "8"
        pods: "64"
        rdma/hca: 1k
      capacity:
        cpu: "192"
        ephemeral-storage: 3690725568Ki
        hugepages-1Gi: "0"
        hugepages-2Mi: "0"
        memory: 2112881480Ki
        nvidia.com/gpu: "8"
        pods: "64"
        rdma/hca: 1k
    ...
  3. 执行以下YAML文件,为Pod使用RDMA功能申请rdma/hca资源。

    • 申请量为rdma/hca:1即可。

    • 检查Pod是否开启hostNetwork: true。开启hostNetwork灵骏节点可使用RDMA功能。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: hps-benchmark
    spec:
      parallelism: 1
      template:
        spec:
          containers:
          - name: hps-benchmark
            image: **
            command:
            - sh
            - -c
            - |
              python /workspace/wdl_8gpu_outbrain.py
            resources:
              limits:
                nvidia.com/gpu: 8
                rdma/hca: 1
            workingDir: /root
            volumeMounts:
              - name: shm
                mountPath: /dev/shm
          restartPolicy: Never
          volumes:
            - name: shm
              emptyDir:
                medium: Memory
                sizeLimit: 8Gi
          hostNetwork: true
          tolerations:
            - operator: Exists
  • 本页导读 (1)
  • RDMA简介
  • 在ACK灵骏节点使用RDMA