# huawei-ucm-test **Repository Path**: daocloud/huawei-ucm-test ## Basic Information - **Project Name**: huawei-ucm-test - **Description**: Testing Huawei UCM on K8S - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-14 - **Last Updated**: 2025-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README | | | | | | | --- | --- | --- | --- | --- | | | | | | | | | | | | | **OceanStor A系列存储与d.run算力调度平台兼容性测试报告** | | | | **文档版本** | **01** | | | **发布日期** | **2025-10-27** | | | ![](images/image1.png) | | | | | | | 华为技术有限公司 | | ![附件1-16K](images/image2.png) | | | | | --- | | 版权所有 © 华为技术有限公司2025。 保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明 ![](images/image3.png) 和其他华为商标均为华为技术有限公司的商标。 本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意 您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声明或保证。 由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 | | | | | --- | --- | | 华为技术有限公司 | | | 地址: | 深圳市龙岗区坂田华为总部办公楼 邮编:518129 | | 网址: | | | 客户服务邮箱: | support@huawei.com | | 客户服务电话: | 4008302118 | | | | --- | | 安全声明 | | 漏洞处理流程 华为公司对产品漏洞管理的规定以“漏洞处理流程”为准,该流程的详细内容请参见如下网址: 如企业客户须获取漏洞信息,请参见如下网址: | 目 录 [1 环境配置 1](#_Toc213078968) [1.1 验证组网图 1](#_Toc213078969) [1.2 硬件与软件配置 1](#_Toc213078970) [1.2.1 存储系统配置 1](#_Toc213078971) [1.2.2 配套测试硬件 2](#_Toc213078972) [1.2.3 测试软件和工具 3](#_Toc213078973) [2 验证结果 4](#_Toc213078974) [2.1 基本信息 4](#_Toc213078975) [2.2 验证目的 4](#_Toc213078976) [2.3 验证总结 5](#_Toc213078977) [3 验证用例 6](#_Toc213078978) [3.1 资源管理测试 6](#_Toc213078979) [3.1.1 存储后端资源管理 6](#_Toc213078980) [3.1.2 存储类资源管理 7](#_Toc213078981) [3.1.3 PVC资源管理 10](#_Toc213078982) [3.1.4 Pod资源管理 13](#_Toc213078983) [3.2 推理场景测试 15](#_Toc213078984) [3.2.1 基础功能对接测试 15](#_Toc213078985) [3.2.1.1 昇腾生态对接测试 15](#_Toc213078986) [3.2.2 推理性能测试 16](#_Toc213078987) [3.2.2.2 长序列稀疏化场景测试 16](#_Toc213078988) [3.2.2.3 多轮对话场景测试 18](#_Toc213078989) [4 结果确认 21](#_Toc213078990) [5 附录 22](#_Toc213078991) [5.1 部分测试指标释义及计算方法 22](#_Toc213078992) [5.1.1 TTFT时延 22](#_Toc213078993) [5.1.2 TBT时延 22](#_Toc213078994) [5.1.3 E2E时延 22](#_Toc213078995) [5.1.4 等效吞吐量TPS 22](#_Toc213078996) # 环境配置 [1.1 验证组网图](#_ZH-CN_TOPIC_0000002362396101") [1.2 硬件与软件配置](#_ZH-CN_TOPIC_0000002362276201") ## 验证组网图 功能验证组网图 ![](images/image4.png) ## 硬件与软件配置 ### 存储系统配置 本测试需要一套华为OceanStor A800存储系统,配置参考如下: OceanStor A800配置表 | 名称 | **描述** | **型号** | 单台高度 | **数量** | | --- | --- | --- | --- | --- | | AI 存储 | OceanStor A800 * 控制框:2控 * 每控CPU:4\*Kunpeng920-7260X * 每控内存:1TB * 硬盘:1.746TB NVMe PALM盘 20块 * 网络:4 \* 2端口 25GE RoCE网卡;2 \* 4端口 25GE ETH网卡 | OceanStor A800 | 8U | 1 | ### 配套测试硬件 配套硬件配置 | 名称 | 描述 | 型号 | 单台高度 | 数量 | | --- | --- | --- | --- | --- | | 推理服务器 | * CPU :2 \* HUAWEI Kunpeng 920 * NPU:8 \* Ascend 910B(64G显存) * 网卡1: 4 \* 2端口 200GE ROCE网卡(参数面,可选) * 网卡2: 1 \* 2端口 25GE ROCE网卡(数据面) * 网卡3:1 \* 4端口 25GE ETH网卡(业务面) * 系统盘 :2 \* 480GB SATA SSD | Atlas 800T A2 | 4U | 1台 | | 业务面交换机 | 用于连接业务及存储面网络 | CE6865 | 1U | 1台 | | 参数面交换机(单节点不涉及) | 用于计算服务器参数面网络,使用400GE一分二线缆连接计算服务器 | XH9210 | 1U | 1台 | ### 测试软件和工具 测试软件及工具表 | 软件类型 | 描述 | | --- | --- | | 计算服务器操作系统 | OpenEuler 22.03 LTS(5.10.0-60.18.0.50.oe2203) | | DataTurbo | 文件加速引擎 | | NFS客户端 | NFS文件系统挂载 | | NPU驱动 | 版本24.1.rc3 | | Docker | 容器控制软件,版本20.10.9 | | Python | AI常用编程语言,版本3.10 | | CANN | 针对AI场景推出的异构计算架构,版本8.0.RC3 | | 推理模型 | Qwen3-32B | # 验证结果 [2.1 基本信息](#_ZH-CN_TOPIC_0000002362276249) [2.2 验证总结](#_ZH-CN_TOPIC_0000002328397732") ## 基本信息 基本信息 | | | | --- | --- | | 厂商 | 华为技术有限公司 | | 产品 | 华为OceanStor A系列存储系统 | | 地点 | | | 人员 | | | 日期 | | | 其余信息 | | ## 验证目的 本次旨在测试道客 d.run 算力调度平台和华为A系列存储对接兼容性,验证在道客平台上A系列存储UCM的推理加速能力,关注TTFT、提高吞吐量和并发的效果提升。 ## 验证总结 **道客 d.run 算力调度平台与华为A系列存储相互兼容,支持AI场景Unified Cache Manager推理加速能力。**在LLM模型推理输入长序列和多并发的场景下,Unified Cache 方案提供了基于华为OceanStor A系列存储系统的Prefix Cache、GSA等功能特性,通过改变KV Cache的重用方式,切片化处理输入序列,以及在长序列稀疏化处理,实现了有效缩短TTFT、提高吞吐量和并发的性能提升效果。 在Qwen3-32B模型,序列长度32K + 1K的场景下,TTFT最大提升47%,E2E吞吐最大提升75%,在超过并发数为15场景,关闭UCM E2E吞吐能力最大为102 tok/s,增加并发后吞吐能力存在波动。 | | | | | | | | | | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | **输入长度** | **输出长度** | **并发数** | **TTFT ms** | | | **E2E吞吐 tok/s** | | | | **开启UCM** | **关闭UCM** | **提升比例** | **开启UCM** | **关闭UCM** | **提升比例** | | 32000 | 1000 | 10 | 26,174.26 | 29755.01 | 12.03% | 103.59 | 92.85 | 11.57% | | 32000 | 1000 | 15 | 38,726.93 | 42776.58 | 9.47% | 125.81 | 102.16 | 23.15% | | 32000 | 1000 | 20 | 52,450.65 | 70537.73 | 25.64% | 142.62 | 82.25 | 73.40% | | 32000 | 1000 | 25 | 59,713.67 | 100254.08 | 40.44% | 151.25 | 88.32 | 71.25% | | 32000 | 1000 | 30 | 65,833.11 | 124975.91 | 47.32% | 162.47 | 92.71 | 75.25% | 在Qwen3-32B模型,序列长度32K + 1K的场景下,关闭UCM,超过最大并发数17,请求开始排队;开启UCM,超过最大并发数32,请求开始排队,在以上情况下,开启UCM对比关闭UCM场景,并发能力提升88.24%。 | | | | | | | --- | --- | --- | --- | --- | | **(4\*910B)/Qwen3** | | **开启UCM** | **关闭UCM** | **并发提升** | | **输入长度** | **输出长度** | **最大并发数** | **最大并发数** | **88.24%** | | 32000 | 1000 | 32 | 17 | # 验证用例 ## 资源管理测试 ### 存储后端资源管理 | | | | --- | --- | | 测试目的 | 验证道客 d.run 算力调度平台通过华为CSI插件对华为存储后端资源进行管理。 | | 测试组网 | 华为容器存储解决方案验证组网图 | | 预置条件 | Kubernetes 集群运行正常。 华为存储系统已创建存储池并运行正常。 华为CSI插件已安装完成并正常运行。 | | 测试步骤 | 1. 参考华为CSI软件包里 examples/backend 目录下的 backend.yaml 模板文件,根据实际环境信息新建存储后端配置文件。 ![333](images/image5.png) 1. 使用配置文件创建存储后端,按照提示输入存储后端的用户名和密码,查看存储后端是否创建成功。 ![444](images/image6.png) 1. 删除已创建的存储后端,查看存储后端是否删除成功。 ![555](images/image7.png) | | 预期结果 | 1. 步骤2中,在 Kubernetes 上查看存储后端创建成功。 2. 步骤3中,在 Kubernetes 上查看存储后端删除成功。 | | 实测结果 | 1. 修改配置文件 ![](images/image8.png) 1. 创建存储后端成功 ![](images/image9.png) 1. 删除存储后端成功 ![](images/image10.png) | | 测试结论 | 通过 | | 备 注 | | ### 存储类资源管理 | | | | --- | --- | | 测试目的 | 验证 Kubernetes 可通过华为CSI插件对存储类资源进行管理。 | | 测试组网 | 华为容器存储解决方案验证组网图 | | 预置条件 | 1. Kubernetes 集群运行正常。 2. 华为存储系统已创建存储池并运行正常。 3. 华为CSI插件已安装完成并正常运行。 4. 在 Kubernetes 中已配置存储后端。 | | 测试步骤 | 1. 参考华为CSI软件包里 examples 目录下的 sc-lun.yaml 模板文件,根据实际环境信息新建存储类配置文件。 ![](images/image11.png) 1. 使用配置文件创建存储类,查看存储类是否创建成功。 ![](images/image12.png) 1. 删除已创建的存储类*。* ![](images/image13.png) 1. 查看存储类是否删除成功。 ![](images/image14.png) | | 预期结果 | 1. 步骤2中,在 Kubernetes 上查看存储类创建成功。 2. 步骤4中,在 Kubernetes 上查看存储类删除成功。 | | 实测结果 | 1. 修改配置文件 ![](images/image15.png) 1. 创建存储类成功 ![](images/image16.png) 1. 删除存储类成功 ![](images/image17.png) | | 测试结论 | 通过 | | 备 注 | | ### PVC资源管理 | | | | --- | --- | | 测试目的 | 验证 Kubernetes 可通过华为CSI插件对PVC资源进行管理。 | | 测试组网 | 华为容器存储解决方案验证组网图 | | 预置条件 | 1. Kubernetes 集群运行正常。 2. 华为CSI插件已安装完成并正常运行。 3. 存储类已创建完成。 | | 测试步骤 | 1. 参考华为CSI软件包里 examples 目录下的 pvc.yaml 模板文件,根据实际环境信息新建PVC配置文件 。 ![](images/image18.png) 1. 使用配置文件创建PVC,查看PVC是否创建成功。 ![](images/image19.png) 1. 登录存储设备查看对应文件系统是否自动创建。 ![](images/image20.png) ![](images/image21.png) 1. 删除已创建的PVC,查看PVC是否删除成功。 ![](images/image22.png) 1. 登录存储设备查看对应文件系统是否被自动删除。 ![](images/image23.png) | | 预期结果 | 1. 步骤2中,在 Kubernetes 上查看PVC创建成功,可看到对应的文件系统名称。 2. 步骤3中,存储上查看对应文件系统已自动创建成功,容量与PVC一致。 3. 步骤4中,在 Kubernetes 上查看PVC删除成功。 4. 步骤5中,存储上查看对应文件系统已被自动删除。 | | 实测结果 | 1. 修改配置文件 ![](images/image24.png) 1. 创建PVC成功 ![](images/image25.png) 1. 存储中文件系统创建成功 ![](images/image26.png) 1. 删除PVC成功 ![](images/image27.png) 1. 存储中文件系统删除成功 ![](images/image28.png) | | 测试结论 | 通过 | | 备 注 | | ### Pod资源管理 | | | | --- | --- | | 测试目的 | 验证 Kubernetes 可通过华为CSI插件对Pod资源进行管理。 | | 测试组网 | 华为容器存储解决方案验证组网图 | | 预置条件 | 1. Kubernetes 集群运行正常。 2. 华为CSI插件已安装完成并正常运行。 3. Pod需要挂载的PVC已创建成功。 | | 测试步骤 | 1. 参考华为CSI软件包里 examples 目录下的 pod.yaml 模板文件,根据实际环境信息新建Pod配置文件。 ![](images/image29.png) 1. 使用配置文件创建Pod,查看Pod是否创建成功。 ![](images/image30.png) ![666](images/image31.png) 1. 在Pod所在的 Kubernetes 节点上查看文件系统是否挂载成功。 2. 进入Pod的容器中查看PVC是否挂载到指定的路径。 ![](images/image32.png) 1. 删除已创建的Pod,查看Pod是否删除成功。 ![777](images/image33.png) | | 预期结果 | 1. 步骤2中,在 Kubernetes 上查看Pod创建成功。 2. 步骤3中,文件系统挂载成功,可查看到文件系统的挂载信息。 3. 步骤4中,容器中可查看到PVC成功挂载到指定路径。 4. 步骤5中,在 Kubernetes 上查看Pod删除成功。 | | 实测结果 | 1. 修改配置文件 ![](images/image34.png) 2. 创建Pod成功 ![](images/image35.png) 3. 文件系统挂载成功 ![](images/image36.png) 4. 容器中PVC已挂载到指定路径 ![](images/image37.png) 5. 从图形界面访问 Pod 内部 ![](images/vllm-workspace.png) 6. 删除Pod成功 ![](images/image38.png) | | 测试结论 | 通过 | | 备 注 | | ## 推理场景测试 ### 基础功能对接测试 #### 昇腾生态对接测试 | | | | --- | --- | | 测试目的 | 验证Unified Cache方案对接昇腾生态的能力 | | 测试组网 | 功能验证组网图 | | 预置条件 | 存储设备已安装部署完成且已通过NFS over RDMA协议对接昇腾计算服务器 模型文件已下载到计算服务器指定位置 Unified Cache环境已搭建完成,且服务已拉起 | | 测试步骤 | 在客户端向Unified Cache服务的 /v1/chat/completions 接口发送POST请求,请求体模板如下,model参数需修改为实际模型路径:`curl --location 'http://127.0.0.1:8071/v1/chat/completions' --header 'Content-Type: application/json' --data '{ "messages": [ { "role": "user", "content": "你好" } ], "model": "DeepSeek-V3-128K", "max\_tokens": 512, "stream": false, "temperature": 0.1, "top\_p": 1.0, "best\_of": 1, "n": 1 }'` 发送请求,等待服务返回请求结果 | | 预期结果 | 步骤2中,请求返回结果成功,Unified Cache服务运行过程正常无报错 | | 实测结果 | ![](images/image39.png) | | 测试结论 | 通过 | | 备 注 | | ### 推理性能测试 #### 长序列稀疏化场景测试 | | | | --- | --- | | 测试目的 | 验证Unified Cache方案在长序列稀疏化场景下的推理性能 | | 测试组网 | 功能验证组网图 | | 预置条件 | 1. 存储设备已安装部署完成且已通过NFS over RDMA协议对接计算服务器 2. 模型文件已下载到指定位置 3. Unified Cache环境已搭建完成,主、从服务器服务已拉起 4. 计算服务器上已安装完成UC-Eval测试工具软件 | | 测试步骤 | 修改pvc挂载配置 ![](images/image40.png) 保证Unified Cache服务的Chunk Prefill功能和GSA(稀疏化)功能为开启状态 ![](images/image41.png) 启用UC-eval测试软件 参考README.md文件,导入环境变量 ![](images/image42.png) 修改测试脚本配置中的并发数为8-64,输入Token数为32K,输出Token数限定在1K ![](images/image43.png) 修改测试用例设置为只运行当前用例 ![](images/image44.png) 运行UC-Eval测试软件,记录测试结果的E2E时延(ms),TBT时延(ms),等效吞吐量TPS (Token/s)等 关闭Unified Cache服务,将服务配置中的GSA、Chunk Prefill等功能关闭后,重新拉起服务,测试裸推场景性能 ![](images/image45.png) 重复步骤2-6,并将其与开启UCM时得到的测试结果进行对比 | | 预期结果 | 在输入长序列推理的场景下,开启GSA功能后,能够实现TBT时延的明显降低和吞吐率成倍增长 | | 实测结果 | 1. 根据测试场景修改输入文档长度及并发数; 2. 开启UCM情况下,使用UC-Eval测试结果如下: [benchmark_static_latency.md](attachments/image46__benchmark_static_latency.md) 记录到最大并发数为32,对应增量吞吐292.7tok/s ![](images/image47.png) 1. 裸推场景,使用UC-Eval测试结果如下: [benchmark_static_latency_no_ucm](attachments/image48__benchmark_static_latency_no_ucm.md) 记录到最大并发数为17,对应增量吞吐173.2tok/s ![](images/image49.png) | | 测试结论 | 通过 | | 备 注 | 长序列稀疏化通过选择输入序列关键位置的token,限制模型关注长序列中的部分而非全部元素,减少注意力的计算范围进而降低计算复杂度,实现增量时延(TBT时延)的明显降低和等效吞吐量(TPS)的增长,提升模型推理长序列输入场景时的效率 | #### 多轮对话场景测试 | | | | --- | --- | | 测试目的 | 验证Unified Cache方案的多轮对话推理性能及效果 | | 测试组网 | 功能验证组网图 | | 预置条件 | 1. 存储设备已安装部署完成且已通过NFS over RDMA协议对接计算服务器 2. Unified Cache环境已搭建完成,且服务已拉起 3. 计算服务器上已安装完成多轮对话模拟性能测试工具脚本,且已上传模拟对话记录。可根据客户实际场景修改对话内容,推荐对话轮次不超过45,含历史对话记录的总Token数不超过32K | | 测试步骤 | 1. 启动测试环境执行cd /home/UC-Eval-dev-zyc source uc-eval/bin/activate 2. 参考README.md文件,导入环境变量,修改多轮对话脚本中model\_url及model参数 ![](images/image50.png) 1. 预埋对话内容,cd UC-Eval-datasets/qa/multi\_turn\_dialogues 修改multiturndialog.json,此文件指定数据集路径![](images/image51.png) 指向UC-Eval-datasets/qa/multi\_turn\_dialogues/kimi/kimi.json ![](images/image52.png) 1. 修改代码,只执行多轮对话脚本,执行 cd src/test\_cases/debug.py 只保留, ![](images/image53.png) 1. 按需修改test\_multi\_turn\_dialogue的内容,编辑 src/test\_cases/test\_all\_by\_pytest.py中的此函数 ![](images/image54.png) 不需要的部分注释掉processor.proces() 1. 根据脚本返回结果,统计TTFT时延 (ms),E2E时延(ms),TBT时延(ms) 2. 开启Unified Cache服务的PrefixCache及RAGChunk功能,启动多轮对话测试工具脚本,设定对话轮次为45,依照模拟对话记录,对问答系统进行测试 3. 根据脚本返回结果,统计TTFT时延 (ms),E2E时延(ms),TBT时延(ms),并同步骤1中的结果进行对比 4. 绘制性能曲线对比图 | | 预期结果(例) | 开启Prefix Cache功能后,随对话轮次增加,TTFT时延明显降低 | | 实测结果 | [multi_turn_dialogue_latency.md](attachments/image55__multi_turn_dialogue_latency.md) ![](images/image56.png) | | 测试结论 | 通过 | | 备 注 | Prefix Cache提供了基础的KV Cache重用方式,能够匹配并重用对话历史或提示词的开头部分(前缀),缩短首Token时延(TTFT时延) | # 结果确认 | | | | --- | --- | | *![image-20251120185710485](images/image57.png)* 上海道客网络科技有限公司 | ![](images/image58.png) 华为技术有限公司 | | 签名: | 签名: | | 日期: | 日期: | # 附录 ## 部分测试指标释义及计算方法 ### TTFT时延 TTFT时延(ms),Time To First Token,即首token时延,指用户发起请求到模型返回第一个Token所需的时间。该指标直接影响用户对模型响应速度的感知。 ### TBT时延 TBT时延(ms),Token Between Token,即平均增量时延,指在大语言模型推理过程中,每生成一个Token之间的平均时间。该指标反映了模型在生成过程中输出词元的流畅度。 ### E2E时延 E2E时延(ms),End-to-End Delay,即端到端时延,指从用户发起请求到AI模型返回最终结果的总时间。该指标反映了模型在生成过程中输出词元的流畅度。 E2E时延可以被大致估计为TTFT+TBT\*(生成Token数-1)+数据传输时间的总和 ### 等效吞吐量TPS TPS(Token/s),Transactions Per Second,即每秒处理事务数,指在模型推理过程中,每秒钟生成的Token数量。该指标衡量了模型的生成速度。可以通过模型生成的总Token数除以模型从输入到生成完成的总时间来计算。