☰
前缀缓存跨节点共享架构:基于 RDMA 的分布式 KV 集中池与低延迟远端拉取
2026/10/24 7:02:39 网站建设 项目流程

在大规模分布式大语言模型推理集群中,前端负载均衡网关(如 Envoy 或自定义调度器)通常采用轮询、最少连接或加权哈希算法将客户端请求分发给后端数十台计算节点。

然而,这种无状态的负载均衡策略在大模型长文本与多轮对话场景下暴露出了极其严重的架构硬伤:单机前缀缓存(Local Prefix Caching)的“信息孤岛效应”。

用户在第 1 轮对话中输入了长达 4000 Token 的企业背景文档,节点 Node A 花费了 1.5 秒完成 Prefill 并将其存入了本地 GPU 显存的 Radix Tree 中;当用户提出第 2 轮问题时,前端网关却将请求路由到了节点 Node B。由于 Node B 本地没有任何历史缓存,它不得不将这 4000 Token 从头到尾重新计算一遍!

如果在跨节点传输时采用常规的 TCP/IP 协议栈,通过 Host 内存中转拷贝数百兆的 KV Cache,网络传输耗时往往超过 1 秒,甚至比 GPU 重新计算一遍还要慢。

要打破这种跨机壁垒,构建一套基于 RDMA(远程直接内存访问)的高性能分布式 KV 集中池与全局前缀索引架构,是实现集群级极致吞吐的必经之路。


跨机传输的微观物理瓶颈:TCP 拷贝 vs GPU Direct RDMA

我们拆解跨机拉取 KV Cache 的物理延迟账本。假设某个会话累积的历史 KV Cache 大小为 128 MB:

传统 TCP/IP 网络传输链路:

  1. 远端 GPU 显存将 128MB 数据通过 PCI-e 拷贝至远端 Host 内存(~5 ms);
  2. 远端操作系统内核协议栈分包、添加 TCP 头部、计算校验和(~15 ms);
  3. 经物理交换机传输至本地网卡(~8 ms);
  4. 本地操作系统软中断解包,内核空间拷贝至用户空间 Buffer(~15 ms);
  5. 本地通过cudaMemcpy将数据从 Host RAM 推入 GPU HBM(~5 ms)。
    端到端延迟高达45 到 60 毫秒,若遇网络微突发与锁争用,延迟还会成倍放大,严重阻碍快速解码启动。

GPU Direct RDMA(GDR)直通链路:

依托 RoCE v2 或 InfiniBand 架构,本端 GPU 发起单边RDMA Read操作:

  • 数据直接从远端 GPU HBM 出发,经远端 PCI-e 直通网卡;
  • 飞跃高速物理网络交换机;
  • 直达本端网卡,经本端 PCI-e 注入本端 GPU HBM!
    两端 Host CPU 完全零参与,内存零拷贝,协议栈开销归零,128MB 数据在 400Gbps 网络下仅需不到 3 毫秒即可全量就位!

分布式 KV 集中池体系结构设计

我们构建了一套分层的分布式前缀缓存共享体系,由“全局前缀目录服务”与“RDMA 分布式内存池”协同驱动:

[客户端请求] ---> [智能亲和网关 (Affinity Gateway)] | +---> 查询全局前缀元数据 (Global Prefix Directory) | (获知前缀 Node_ID 与 Remote_HBM_Address) v +-----------------------------+ | 目标推理节点 Node B | | (缺少本地 KV Cache) | +-----------------------------+ | 【发起 GPU Direct RDMA Read 单边高速读取】 | v +-----------------------------+ | 源推理节点 Node A | | (持有已计算的 KV 块) | +-----------------------------+

1. 全局轻量级前缀目录(Global Prefix Directory)

采用基于内存的高性能 Raft 分布式哈希表,维护全局 Token 序列哈希与持有节点的物理映射表。当任意节点在本地 Prefill 成功时,以异步方式向目录发布轻量级元数据(仅包含 Block Hash、持有节点 IP 及远程 RDMA 内存密钥rkey),耗时控制在数十微秒级。

2. RDMA 单边读取与 PagedAttention 槽位就地填装

本地推理节点在调度器匹配到远端前缀后,在 GPU 计算流之前插入 RDMA 传输任务,直接将数据拉取至本地 PagedAttention 预先分配好的物理槽位中:

#include <infiniband/verbs.h> // 基于 ibverbs 的 GPU Direct RDMA 远端 KV 拉取概念实现 struct RdmaKvTransferEngine { struct ibv_qp* qp; void ReadRemoteKvBlock( uint64_t remote_addr, uint32_t rkey, void* local_gpu_hbm_ptr, uint32_t block_size ) { struct ibv_sge sge; sge.addr = (uintptr_t)local_gpu_hbm_ptr; sge.length = block_size; sge.lkey = local_gpu_mr->lkey; struct ibv_send_wr wr, *bad_wr = nullptr; memset(&wr, 0, sizeof(wr)); wr.wr_id = 1; wr.sg_list = &sge; wr.num_sge = 1; wr.opcode = IBV_WR_RDMA_READ; // 单边直接读取,远端 CPU 无需介入 wr.send_flags = IBV_SEND_SIGNALED; wr.wr.rdma.remote_addr = remote_addr; wr.wr.rdma.rkey = rkey; // 发送工作请求,网卡硬件驱动执行传输 ibv_post_send(qp, &wr, &bad_wr); } };

集群级全景压测:跨机前缀复用的性能跃升

我们在由 16 台配备双口 400Gbps RoCE 网卡、8 卡 H100 的推理集群上进行全链路高并发真实多轮对话流量回放。

测试场景设定:

  • 网关采用完全随机轮询分发策略,刻意制造跨机路由;
  • 对话上下文长度在 4000 ~ 8000 Token 之间;
  • 对比基准 A:纯单机 RadixAttention(跨机路由时发生二次计算);
  • 对比基准 B:基于普通 TCP 网络的跨机拉取;
  • 优化方案:基于 GPU Direct RDMA 的分布式 KV 集中池。

核心性能对比矩阵

评估指标基准 A(单机缓存孤岛)基准 B(TCP 跨机同步)优化方案(RDMA 集中池)
跨节点多轮对话有效缓存命中率6.2%(近乎全失控)84.5%89.2%
跨机获取 128MB KV 耗时重新计算需 1850 ms传输耗时 54.2 ms传输耗时 2.85 ms(极速)
多轮对话第 5 轮平均 TTFT1,940 ms280 ms38 ms(百倍压缩)
集群整体有效生成吞吐 (Tokens/s)124,000185,000318,000(翻 2.5 倍)
GPU Prefill 算力闲置浪费占比48.6%14.2%3.1%(算力充分压榨)

测试数据呈现出革命性的架构红利:

  1. 彻底打破节点孤岛:在随机分发流量下,跨节点缓存命中率直接从不足 7% 飙升至89.2%,即便用户被分发到全新的物理服务器,也能在 2.85 毫秒内瞬间拉取历史 KV Cache,TTFT 从近 2 秒压至38 毫秒;
  2. 集群算力利用率彻底释放:重复 Prefill 计算比例由 48.6% 骤降至 3.1%,全集群原本浪费在重复计算上的算力被彻底释放,整网 Token 生成吞吐量暴涨2.56 倍。

大模型推理基础设施的竞争,正在从单机单卡的算子内卷,全面升维为跨越网络总线与分布式内存池的系统级博弈。构建基于 RDMA 的分布式 KV 集中共享架构,是构筑超大规模低延迟推理云平台不可或缺的底层底座。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询