
人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载本篇文章基于 Mooncake 开源仓库官方基准报告docs/source/performance/sglang/sglang-benchmark-results-v1.md展开聚焦 SGLang 借助 Mooncake Transfer Engine 实现 Prefill-DecodePD分离推理后跨节点 KV Cache 在 RoCE 网络上的传输带宽、TTFT 构成与端到端延迟表现。文中完整保留官方基准的硬件拓扑、启动命令与压测脚本并结合 Transfer Engine 设计文档 与 SGLang PD 分离部署指南 补充实现原理与可复现细节帮助读者理解 Mooncake 如何支撑 PD 分离推理以及如何在自建集群上复现同类基准。一、基准背景SGLang PD 分离推理与 Mooncake 的角色1.1 为什么需要 PD 分离大语言模型推理中Prefill 阶段处理输入 prompt、生成 KV Cache与 Decode 阶段逐 token 生成输出的计算特征截然不同Prefill 是计算密集型Decode 是访存/带宽密集型。将二者部署到不同节点可以让 Prefiller 与 Decoder 各自按最优规格配置这正是 Prefill-DecodePD分离推理的核心动机。在 PD 分离架构中Prefiller 完成预填充后必须把增量 KV Cache 通过高速网络搬运到 Decoder 节点这一搬运开销直接决定 PD 分离是否可行。Mooncake 在此扮演的角色是提供 KV Cache 传输后端SGLang 通过--disaggregation-transfer-backend mooncake接入 Mooncake Transfer Engine由后者承担跨节点、跨进程的 KV Cache 零拷贝传输。1.2 集成方式与整体架构根据 SGLang 分离部署指南SGLang 与 Mooncake Transfer Engine 的集成基于 SGLang 官方 PR 4654 与 PR 4880支持 RDMA 传输并进一步扩展到 EPExpert Parallelism与 EPDEncoder-Prefill-Decode后端。其整体拓扑可概括为----------- Transfer Engine (RDMA) ----------- | SGLang | ◄━━━━━━━━━━━━━━━━━━━━━━━━━► | SGLang | | Prefill | KV cache blocks | Decode | ----------- -----------Prefiller 与 Decoder 通过 RoCE v2 网络互联由 SGLang Router 负责把请求路由到 Prefiller并同步管理两端角色。本次基准采用最简的 1P1D1 个 Prefiller、1 个 Decoder拓扑。二、基准环境与硬件拓扑2.1 H20 集群配置基准运行在双节点 NVIDIA H20 集群上具体配置如下硬件配置NVIDIA H20-3e143 GB× 16每节点 8 张每节点 4 个 NVIDIA/Mellanox ConnectX-7 400GbE 端口8 端口/双节点。拓扑1P1D。Prefiller 与 Decoder 通过 RoCE v2 连接SGLang Router 运行在 Decoder 节点。模型Qwen3-235B-A22B-Instruct-2507BF16。SGLang 版本main 分支commit43124cdd2026 年 7 月 15 日拉取。Mooncake 版本main 分支commit6e3a11b92026 年 7 月 15 日拉取。KV 传输后端Mooncake Transfer Engine。传输方式跨节点 RDMA over RoCE v2。缓存配置关闭 HiCache 与 radix cache关闭 chunked prefill。其中每节点 4 条 400GbE 链路聚合的链路速率为200 GB/s这也是后文衡量带宽利用率的基准分母。2.2 基准脚本与流量模型官方基准使用 SGLang 官方sglang.benchmark.serving模块生成流量每种 prompt 长度下发50 个请求输出长度固定为128 tokens通过循环遍历 9 档 prompt 长度完成全量测量for prompt_len in 128 256 512 1024 2048 4096 8192 16384 32768; do python -m sglang.benchmark.serving \ --backend sglang \ --base-url http://127.0.0.1:8000 \ --model /path/to/Qwen3-235B-A22B-Instruct-2507 \ --served-model-name Qwen3-235B-A22B-Instruct-2507 \ --tokenizer /path/to/Qwen3-235B-A22B-Instruct-2507 \ --dataset-name random \ --dataset-path /path/to/ShareGPT_V3_unfiltered_cleaned_split.json \ --num-prompts 50 \ --random-input-len ${prompt_len} \ --random-output-len 128 \ --random-range-ratio 1.0 \ --request-rate inf \ --max-concurrency 1 \ --seed 42 \ --flush-cache \ --warmup-requests 1 \ --tokenize-prompt \ --output-details \ --output-file result-${prompt_len}.jsonl done关键压测参数解读--request-rate inf配合--max-concurrency 1以无限速率逐个下发请求保证每个请求独占全部传输资源从而测出该 prompt 长度下的峰值传输带宽而非并发受限带宽。--flush-cache每次压测前清空缓存避免前缀缓存命中污染传输量。--warmup-requests 1预热一个请求规避首次推理的冷启动开销。--random-range-ratio 1.0随机 prompt 长度完全均匀分布。--output-details输出每个请求的详细时延统计供 TTFT 分析使用。三、核心指标一跨节点 KV 传输带宽3.1 带宽随 prompt 长度增长基准测量了不同 prompt 长度下请求执行期间的实际 KV 传输带宽在 1P1D 配置下Mooncake 达到了164.3 GB/s 的峰值传输带宽。对比每节点 4 条 400GbE 链路聚合的 200 GB/s 线速带宽利用率达82.2%。该结果表明 Mooncake Transfer Engine 配合 GPUDirect RDMA 能够在跨节点 RoCE 网络上维持高聚合吞吐。3.2 带宽利用率趋势分析Prompt LengthTTFT (ms)KV SizeTransfer Time (ms)Bandwidth (GB/s)Bandwidth Utilization128 tokens129.2149 MB2.0723.7911.9%256 tokens125.7699 MB2.5838.2719.1%512 tokens133.91197 MB2.9866.1833.1%1,024 tokens125.84394 MB3.9699.4749.7%2,048 tokens172.05789 MB6.43122.6661.3%4,096 tokens304.021.58 GB10.95144.0572.0%8,192 tokens591.143.15 GB20.31155.2677.6%16,384 tokens1,305.156.31 GB39.14161.1980.6%32,768 tokens3,260.1412.62 GB76.78164.3382.2%数据呈现清晰的规律小 prompt128–1,024 tokensKV 体量小49–394 MB传输耗时极短2–4 ms实测带宽被单次传输的启动/握手开销摊薄利用率仅 11.9%–49.7%。中长 prompt4,096–16,384 tokensKV 体量增至 1.58–6.31 GB传输窗口变长带宽利用率稳定爬升至 72.0%–80.6%。超长 prompt32,768 tokens单请求需搬移12.62 GBKV 数据实测带宽达到 164.33 GB/s利用率 82.2%接近 200 GB/s 链路聚合线速的八成以上。3.3 底层原理为什么能打满聚合带宽结合 Transfer Engine 设计文档164.3 GB/s 高带宽来源于以下几层机制BatchTransfer 批量传输Transfer Engine 以Segment抽象统一本地/远端地址空间以BatchTransfer批量封装读写请求一次提交即可驱动多个 RDMA 操作降低软件路径开销。多网卡池化与分片当单请求数据长度超过 64 KBMC_SLICE_SIZE默认值时Transfer Engine 会将请求切分为多个 slice每个 slice 可选择不同网卡路径实现多 RDMA 网卡协同工作详见 transfer-engine-bench-tuning.md 中关于MC_SLICE_SIZE的说明。本基准中 12.62 GB 的 KV 数据被切分为大量 64 KB 级 slice分散到 4 张 ConnectX-7 上并发传输。拓扑感知路径选择每台服务器启动时生成拓扑矩阵并广播到集群将各 NIC 按内存归属CPU/GPU/NUMA划分为 preferred 与 secondary 列表正常路径下优先选择本地 NUMA 或 PCIe Switch 就近的网卡配合 GPU Direct RDMA 避免 UPI/PCIe Switch 带宽瓶颈。GPUDirect RDMA 零拷贝GPU 内存通过nvidia-peermem内核模块直接注册WITH_NVIDIA_PEERMEM1KV Cache 从 Prefiller GPU 直达 Decoder GPU全程不经过 CPU 与主机内存。四、核心指标二Time to First TokenTTFT4.1 KV 传输在 TTFT 中的占比TTFTTime To First Token直接反映 KV 传输开销对端到端延迟的影响官方报告的关键结论KV 传输在 TTFT 中占比随 prompt 长度先升后降峰值出现在 2,048 tokens 附近。原因在于 2,048 tokens 之后Prefill 计算量的增长速度超过 KV 传输时间的增长速度传输占比随之回落。以最长的 32,768 tokens prompt 为例需搬移12.62 GBKV 数据KV 传输耗时76.78 ms仅占 TTFT3,260.14 ms的2.4%。这意味着即使单请求传输 12.62 GBKV 搬运的时延开销也远小于 Prefill 计算本身PD 分离的额外延迟代价被控制在极低水平。4.2 传输时间与 KV 体量的线性关系从图表可见KV 传输时间随 KV Cache 体积近似线性增长如 789 MB → 6.43 ms6.31 GB → 39.14 ms12.62 GB → 76.78 ms符合传输时间 ≈ 数据体积 / 有效带宽的物理规律同时斜率随数据变大略微变缓正对应带宽利用率的逐步爬升。TTFT 曲线则呈现另一特征128–1,024 tokens 区间 TTFT 稳定在 125–134 ms 量级此时 Prefill 计算量小、KV 传输占比高此后随 prompt 增长快速上升32,768 tokens 时达 3.26 s。4.3 传输开销控制的技术支撑76.78 ms 搬移 12.62 GB 的背后同样离不开上述多网卡分片与拓扑感知调度。此外Transfer Engine 设计文档 还提到若干降低传输时延的运行时选项例如MC_NUM_QP_PER_EP默认 2每个 EndPoint 的 QP 数量越多细粒度 I/O 性能越好。MC_RETRY_CNT传输失败自动重试保障长链路下数据完整性。MC_PATH_ROUNDROBINRDMA 路径轮询模式对大批量传输如 12.62 GB KV 块有增益。MC_IB_SL可通过 InfiniBand Service Level 为 KV Cache 流量划分 QoS 通道如与 Expert Parallel all-to-all 流量隔离。这些参数均通过环境变量注入在下一节的启动命令中可直接组合使用。五、复现指南完整启动命令5.1 环境准备参照 SGLang 分离部署指南首先安装 Mooncake Transfer Engine 与 SGLangpip3 install mooncake-transfer-engine # 若出现 lib*.so 缺失可卸载后从源码构建 pip3 uninstall mooncake-transfer-engine # 安装 SGLang推荐用 uv 加速 pip install --upgrade pip pip install uv uv pip install sglang若使用 CUDA 12 环境还需按指南重装对应 CUDA 12.9 的 torch 与 sglang-kernel。5.2 Prefiller 启动SGLANG_HOST_IPPREFILL_HOST_IP \ MOONCAKE_PROTOCOLrdma \ WITH_NVIDIA_PEERMEM1 \ python -m sglang.launch_server \ --model-path /path/to/Qwen3-235B-A22B-Instruct-2507 \ --host 0.0.0.0 --port 30000 \ --tp-size 8 \ --dtype bfloat16 \ --trust-remote-code \ --stream-interval 1 \ --chunked-prefill-size -1 \ --disable-radix-cache \ --disaggregation-mode prefill \ --disaggregation-bootstrap-port 8998 \ --disaggregation-transfer-backend mooncake \ --disaggregation-ib-device /path/to/ib_devices.json \ --enable-request-time-stats-logging5.3 Decoder 启动SGLANG_HOST_IPDECODE_HOST_IP \ MOONCAKE_PROTOCOLrdma \ WITH_NVIDIA_PEERMEM1 \ python -m sglang.launch_server \ --model-path /path/to/Qwen3-235B-A22B-Instruct-2507 \ --host 0.0.0.0 --port 30001 \ --tp-size 8 \ --dtype bfloat16 \ --trust-remote-code \ --stream-interval 1 \ --chunked-prefill-size -1 \ --disable-radix-cache \ --disaggregation-mode decode \ --disaggregation-transfer-backend mooncake \ --disaggregation-ib-device /path/to/ib_devices.json \ --enable-request-time-stats-logging5.4 Router 启动运行在 Decoder 节点python -m sglang_router.launch_router \ --host 0.0.0.0 --port 8000 \ --pd-disaggregation \ --prefill http://PREFILL_HOST_IP:30000 8998 \ --decode http://DECODE_HOST_IP:30001 \ --policy round_robin5.5 关键启动参数说明参数作用基准取值--disaggregation-mode节点角色prefill或decodeprefill / decode--disaggregation-transfer-backend mooncake指定 KV 传输后端为 Mooncake Transfer Enginemooncake--disaggregation-ib-deviceRDMA 设备清单json 文件路径可自动探测/path/to/ib_devices.json--disaggregation-bootstrap-portPrefiller 侧引导端口Router 的--prefill参数需与之配对8998--tp-size 8张量并行度每节点 8 张 H20 全量参与8--chunked-prefill-size -1关闭 chunked prefill-1-1--disable-radix-cache关闭 radix cache保证 KV 传输量为真实增量---enable-request-time-stats-logging开启请求级时延统计供 TTFT 分析-MOONCAKE_PROTOCOLrdma强制 Transfer Engine 使用 RDMA 传输rdmaWITH_NVIDIA_PEERMEM1启用 GPUDirect RDMA依赖 nvidia-peermem 内核模块15.6 验证链路启动完成后可通过以下命令验证 PD 分离服务是否正常curl -X POST http://127.0.0.1:8000/generate \ -H Content-Type: application/json \ -d {text: Tell me a long story, sampling_params: {temperature: 0}}若遇 HuggingFace 下载超时可按部署指南设置export SGLANG_USE_MODELSCOPEtrue。六、PD 分离与常规 SGLang 的对比A10 集群除 H20 集群的绝对性能测量外官方报告还提供了早期实现在 A10 服务器上的对照实验对比 1P1D 与两台常规非分离SGLang 实例PD 分离在总吞吐相当的前提下ITLtoken 间延迟降低约 30%。这与 Mooncake 论文中PD 分离在相近吞吐下降低 TBT/ITL或在更严格 ITL/TBT SLO 下支撑更高吞吐的结论一致。6.1 请求速率 1.0模型Qwen2.5-7B-Instruct-GPTQ-Int4TP 4流量random_input_len8192random_output_len512num prompt50配置Output Token Throughput (tok/s)Mean E2E Latency (ms)Total Token Throughput (tok/s)Mean TTFT (ms)P99 TTFT (ms)Mean ITL (ms)P99 ITL (ms)1P1D407.593413.867084.46732.542952.577.2310.762 Regular427.654586.547433.27767.181264.8810.3012.731P1D 的 Mean ITL7.23 ms比两台常规实例10.30 ms低约 30%端到端平均延迟3413.86 ms vs 4586.54 ms也显著更优代价是 P99 TTFT 略高2952.57 ms vs 1264.88 ms因为请求需先经 Router 路由再由 Prefiller 预填充、跨节点搬移 KV 后才能开始解码。6.2 请求速率 4.0模型Qwen2.5-7B-Instruct-GPTQ-Int4TP 2流量random_input_len2048random_output_len512num prompt200配置Output Token Throughput (tok/s)Mean E2E Latency (ms)Total Token Throughput (tok/s)Mean TTFT (ms)P99 TTFT (ms)Mean ITL (ms)P99 ITL (ms)1P1D1215.1711519.246161.431111.942725.8917.0619.722 Regular1223.0311683.156201.29310.01720.9125.74294.89在高并发rate 4.0下1P1D 的吞吐与两台常规实例基本持平输出吞吐 1215.17 vs 1223.03 tok/s但 Mean ITL 与 P99 ITL 大幅改善17.06 vs 25.74 ms19.72 vs 294.89 msP99 ITL 从近 300 ms 收敛到 20 ms 以内凸显 PD 分离在时延 SLO 方面的优势。值得注意的是该场景下常规实例的 TTFT310.01 ms反而远优于 1P1D1111.94 ms这源于 PD 分离将 Prefill 从 Decode 节点剥离后Decoder 可以专职解码、吞吐稳定但请求整体完成路径变长同时常规实例的 P99 ITL 出现 294.89 ms 的极端长尾说明其在并发压力下逐 token 生成极不稳定。6.3 规模化展望报告进一步指出在更大的集群中当 Prefill 与 Decode 节点数量xPyD 中的 x 与 y同时增加时调度灵活性与资源效率将进一步提升PD 分离的收益会更加显著——例如更多 Decoder 可分摊 Prefill 节点涌入的 KV 流量更多 Prefiller 可并行为不同 Decoder 供 KV。七、结论与可复现建议本次基准的核心结论可归纳为四点高带宽1P1D Qwen3-235B-A22B-Instruct-2507 下Mooncake 跨节点 KV 传输峰值带宽达 164.3 GB/s为四路 400GbE 聚合线速200 GB/s的 82.2%验证了 Transfer Engine GPUDirect RDMA 在大模型 KV 搬运场景的工程成熟度。低时延开销32,768 tokens 长 prompt 需传输 12.62 GB KV 数据仅耗时 76.78 ms、占 TTFT 的 2.4%KV 传输时间随体量近似线性增长。时延收益在 A10 集群对照中1P1D 相对两台常规实例在吞吐相当前提下 ITL 降低约 30%且 P99 ITL 显著收敛与 Mooncake 论文结论一致。规模增益可期xPyD 大规模配置下PD 分离在调度灵活性与资源效率上的优势将进一步放大。如需在自建集群复现请严格按第五节命令配置并注意两点前提一是本基准在 SGLang43124cdd与 Mooncake6e3a11b9均拉取于 2026 年 7 月 15 日上测得不同版本参数或行为可能变化二是基准刻意关闭了 HiCache、radix cache 与 chunked prefill以保证测量的是纯增量 KV 跨节点传输若开启这些特性传输量与时延构成将随之改变。更完整的部署细节可参考 SGLang PD 分离部署指南Transfer Engine 的底层传输、拓扑感知与故障处理机制见 Transfer Engine 设计文档 及 Benchmark Tuning 指南。赞分享人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载相关推荐Mooncake × vLLM V1 PD 分离架构性能实测跨节点 RDMA KV Cache 传输与部署指南Mooncake × vLLM V1 PD 分离架构性能实测跨节点 RDMA KV Cache 传输与部署指南 导读 本文基于 Mooncake 官方在 vL人工智能大模型模型推理服务后端SGLang 与 Mooncake Transfer Engine 的 PD 分离式推理Disaggregated Prefill-Decode部署指南SGLang 与 Mooncake Transfer Engine 的 PD 分离式推理Disaggregated Prefill Decode部署指南 导人工智能大模型模型推理服务后端Mooncake x vLLM v1MooncakeConnector 实现 Prefill-Decode 分离推理与 KV Cache RDMA 跨节点传输实战指南Mooncake x vLLM v1MooncakeConnector 实现 Prefill Decode 分离推理与 KV Cache RDMA 跨节点传输人工智能大模型模型推理服务后端上一篇TigerVNC快捷键冲突终极解决方案ShortcutHandler机制深度解析与高效配置指南下一篇eslint-plugin-react 的 no-unstable-nested-components 规则彻底阻止在组件内部定义“不稳定嵌套组件”创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考