[昇腾推理优化] 基于昇腾910B的mooncake组件部署指导手册

解决主要问题:

  • vllm-ascend官方镜像环境不匹配问题,
  • mooncake配置
  • vllm-ascend启动环境配置

 

并在最后进行了效果评价,效果基本符合预期。

 

详细配置步骤如下:

1.mooncake环境搭建

1.1 mooncake安装

需要下载安装包,编辑安装环境。直接pip不可用

git clone https://github.com/kvcache-ai/Mooncake.git

apt-get install mpich libmpich-dev -y

cd Mooncake
bash dependencies.sh -y
mkdir build
cd build
cmake .. -DUSE_ASCEND_DIRECT=ON    ##昇腾环境要注意
make -j
make instal

 

安装成功检测

import mooncake
无报错

 

1.2 mooncake启动

 

##启动命令
mooncake_master --port 50088 --eviction_high_watermark_ratio  0.9 --eviction_ratio 0.05  --rpc_thread_num 32 --metrics_port 10022

##log
WARNING: Logging before InitGoogleLogging() is written to STDERR
W20251205 13:07:34.889658 162445 master.cpp:133] port is deprecated, use rpc_port instead
I20251205 13:07:34.889760 162445 master.cpp:296] Master service started on port 50058, enable_gc=0, max_threads=32, enable_metric_reporting=1, metrics_port=9003, default_kv_lease_ttl=5000, default_kv_soft_pin_ttl=1800000, allow_evict_soft_pinned_objects=1, eviction_ratio=0.05, eviction_high_watermark_ratio=0.9, enable_ha=0, etcd_endpoints=, client_ttl=10, rpc_thread_num=32, rpc_port=50058, rpc_address=0.0.0.0, rpc_conn_timeout_seconds=0, rpc_enable_tcp_no_delay=1, cluster_id=mooncake_cluster, memory_allocator=offset
I20251205 13:07:34.908459 162445 rpc_service.cpp:181] HTTP metrics server started on port 9003
I20251205 13:07:34.908710 162453 rpc_service.cpp:49] Master Metrics: Storage: 0 B / 0 B | Keys: 0 (soft-pinned: 0) | Requests (Success/Total): PutStart=0/0, PutEnd=0/0, PutRevoke=0/0, Get=0/0, Exist=0/0, Del=0/0, DelAll=0/0,  | Batch Requests (Req=Success/PartialSuccess/Total, Item=Success/Total): PutStart:(Req=0/0/0, Item=0/0), PutEnd:(Req=0/0/0, Item=0/0), PutRevoke:(Req=0/0/0, Item=0/0), Get:(Req=0/0/0, Item=0/0), ExistKey:(Req=0/0/0, Item=0/0),  | Eviction: Success/Attempts=0/0, keys=0, size=0 B

 

2.效果测试

准备mooncake配置文件,后续提供给推理服务。样例如下:

{
    "local_hostname": "xxxxxx",                  
    "metadata_server": "P2PHANDSHAKE",                
    "protocol": "ascend",
    "device_name": "",
    "global_segment_size": 62474836480,
    "master_server_address": "xxxxxxx:50088",
    "use_ascend_direct":true
}

 

2.1 vllm-ascend+mooncake

环境构建

ascend/vllm-ascend · Quay

Vllm-ascend发布的0.11.rc3版本已内置了mooncake组件。

但是镜像内的vllm和vllm-ascend版本不匹配。

需要重新安装先关组件

#pip list |grep torch
torch                             2.7.1+cpu
torch_npu                         2.7.1
torchvision                       0.22.1

# pip list |grep vllm 
vllm                              0.11.2+empty  /vllm-workspace/vllm
vllm_ascend                       0.11.0rc3     /vllm-workspace/vllm-ascend

需要降低vllm版本到0.11.0。

如果只对vllm降级,也会报错

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torch-npu 2.7.1 requires torch==2.7.1, but you have torch 2.8.0 which is incompatible.
vllm-ascend 0.11.0rc3 requires torch==2.7.1, but you have torch 2.8.0 which is incompatible.

 

vllm和torch相关的版本也有匹配关系,需要对相关版本做统一的更新:

pip install pip install vllm==0.11.0 torch_npu==2.8.0

 

安装完成后使用vllm serve进行测试

vllm serve --help
INFO 12-08 13:40:01 [__init__.py:36] Available plugins for group vllm.platform_plugins:
INFO 12-08 13:40:01 [__init__.py:38] - ascend -> vllm_ascend:register
INFO 12-08 13:40:01 [__init__.py:41] All plugins in this group will be loaded. Set `VLLM_PLUGINS` to control which plugins to load.
INFO 12-08 13:40:01 [__init__.py:207] Platform plugin ascend is activated
WARNING 12-08 13:40:07 [_custom_ops.py:20] Failed to import from vllm._C with ImportError('libcudart.so.12: cannot open shared object file: No such file or directory')
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen2VLForConditionalGeneration is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen2_vl:AscendQwen2VLForConditionalGeneration.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen3VLMoeForConditionalGeneration is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen2_5_vl_without_padding:AscendQwen3VLMoeForConditionalGeneration.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen3VLForConditionalGeneration is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen2_5_vl_without_padding:AscendQwen3VLForConditionalGeneration.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen2_5_VLForConditionalGeneration is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen2_5_vl:AscendQwen2_5_VLForConditionalGeneration.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen2_5OmniModel is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen2_5_omni_thinker:AscendQwen2_5OmniThinkerForConditionalGeneration.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture DeepseekV32ForCausalLM is already registered, and will be overwritten by the new model class vllm_ascend.models.deepseek_v3_2:CustomDeepseekV3ForCausalLM.
WARNING 12-08 13:40:07 [registry.py:582] Model architecture Qwen3NextForCausalLM is already registered, and will be overwritten by the new model class vllm_ascend.models.qwen3_next:CustomQwen3NextForCausalLM.
INFO 12-08 13:40:08 [importing.py:63] Triton not installed or not compatible; certain GPU-related functions will not be available.
usage: vllm serve [model_tag] [options]

Launch a local OpenAI-compatible API server to serve LLM
completions via HTTP. Defaults to Qwen/Qwen3-0.6B if no model is specified.

Search by using: `--help=<ConfigGroup>` to explore options by section (e.g.,
--help=ModelConfig, --help=Frontend)
  Use `--help=all` to show all available flags at once.

Config Groups:
  positional arguments    
  options                 
  Frontend                Arguments for the OpenAI-compatible frontend server.
  ModelConfig             Configuration for the model.
  LoadConfig              Configuration for loading the model weights.
  StructuredOutputsConfig Dataclass which contains structured outputs config for the engine.
  ParallelConfig          Configuration for the distributed execution.
  CacheConfig             Configuration for the KV cache.
  MultiModalConfig        Controls the behavior of multimodal models.
  LoRAConfig              Configuration for LoRA.
  ObservabilityConfig     Configuration for observability - metrics and tracing.
  SchedulerConfig         Scheduler configuration.
  VllmConfig              Dataclass which contains all vllm-related configuration. This
      simplifies passing around the distinct configurations in the codebase.
      

For full list:            vllm serve --help=all
For a section:            vllm serve --help=ModelConfig    (case-insensitive)
For a flag:               vllm serve --help=max-model-len  (_ or - accepted)
Documentation:            https://docs.vllm.ai

 

mooncake配置文件,配置100GB ssd容量

{
    "local_hostname": "1.1.1.1",                  
    "metadata_server": "P2PHANDSHAKE",                
    "protocol": "ascend",
    "device_name": "",
    "global_segment_size": 105474836480,
    "master_server_address": "2.2.2.2:50058",
    "use_ascend_direct":true,
    "alloc_in_same_node": true
}

 

服务运行

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7

export PYTHONPATH=$PYTHONPATH:/vllm-workspace/vllm

export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:$LD_LIBRARY_PATH
export MOONCAKE_CONFIG_PATH="/opt/files/src/kv-cache/conf/mooncake_vllm.json"
export ACL_OP_INIT_MODE=1
export ASCEND_BUFFER_POOL=4:8
export ASCEND_CONNECT_TIMEOUT=10000
export ASCEND_TRANSFER_TIMEOUT=10000


vllm serve /opt/models/Qwen2p5-7B-Instruct/     --served-model-name qwen2p5-7b-mooncake     --dtype bfloat16      --max-model-len 32768      --tensor-parallel-size 1     --host 0.0.0.0      --port 31001      --enforce-eager      --enable-prefix-caching      --block-size 128      --max-num-batched-tokens 8192      --gpu-memory-utilization 0.59      --kv-transfer-config '{        "kv_connector": "MooncakeConnectorStoreV1",        "kv_role": "kv_both",        "kv_connector_extra_config": {            "use_layerwise": false,            "mooncake_rpc_port": "0",            "load_async": true,            "register_buffer": true        }    }'

 

启动过程关键log:

#### 推理框架关键log:

(EngineCore_DP0 pid=2392) INFO 12-08 14:01:29 [factory.py:51] Creating v1 connector with name: MooncakeConnectorV1 and engine_id: 3e9a8a19-e986-4353-b826-e25fe09b5146
(EngineCore_DP0 pid=2392) WARNING 12-08 14:01:29 [base.py:86] Initializing KVConnectorBase_V1. This API is experimental and subject to change in the future as we iterate the design.
WARNING: Logging before InitGoogleLogging() is written to STDERR
I20251208 14:01:29.602275  2392 transfer_engine.cpp:486] Metrics reporting is disabled (set MC_TE_METRIC=1 to enable)
I20251208 14:01:29.602348  2392 transfer_engine.cpp:91] Transfer Engine parseHostNameWithPort. server_name: 30.189.250.94 port: 12001
I20251208 14:01:29.602769  2392 transfer_engine.cpp:146] Transfer Engine RPC using P2P handshake, listening on 30.189.250.94:16341
I20251208 14:01:29.602919  2392 ascend_direct_transport.cpp:86] install AscendDirectTransport for: 30.189.250.94:16341
I20251208 14:01:29.602973  2392 ascend_direct_transport.cpp:477] Find available between 26000 and 27000
I20251208 14:01:29.603039  2392 ascend_direct_transport.cpp:442] AscendDirectTransport set segment desc: host_ip=30.189.250.94, host_port=26957, deviceLogicId=0
I20251208 14:01:29.603081  2392 ascend_direct_transport.cpp:164] Set adxl.BufferPool to:4:8
I20251208 14:01:29.611251  2392 ascend_direct_transport.cpp:177] Success to initialize adxl engine:30.189.250.94:26957 with device_id:0
I20251208 14:01:29.611310  2392 ascend_direct_transport.cpp:186] Set connection timeout to:10000
I20251208 14:01:29.611330  2392 ascend_direct_transport.cpp:195] Set transfer timeout to:10000
I20251208 14:01:29.613250  2591 ascend_direct_transport.cpp:512] AscendDirectTransport worker thread started
I20251208 14:01:29.613384  2392 client_metric.cpp:76] Client metrics enabled (default enabled)

....
....

(EngineCore_DP0 pid=2392) INFO 12-08 14:01:39 [worker_v1.py:256] Available memory: 21181885132, total memory: 65452113920
(EngineCore_DP0 pid=2392) INFO 12-08 14:01:39 [kv_cache_utils.py:1087] GPU KV cache size: 369,280 tokens
(EngineCore_DP0 pid=2392) INFO 12-08 14:01:39 [kv_cache_utils.py:1091] Maximum concurrency for 32,768 tokens per request: 11.27x
(EngineCore_DP0 pid=2392) INFO 12-08 14:01:39 [mooncake_engine.py:102] num_blocks: 2975, block_shape: torch.Size([128, 4, 128])
(EngineCore_DP0 pid=2392) INFO 12-08 14:01:39 [mooncake_engine.py:105] Registering KV_Caches. use_mla: False, shape torch.Size([2885,, 128, 4, 128])


### mooncake——master log
### 推理框架成功启动后,

I20251208 14:01:26.540841   484 rpc_service.cpp:40] Master Metrics: Mem Storage: 0 B / 0 B | SSD Storage: 0 B / 0 B | Keys: 0 (soft-pinned: 0) | Requests (Success/Total): PutStart=0/0, PutEnd=0/0, PutRevoke=0/0, Get=0/0, Exist=0/0, Del=0/0, DelAll=0/0,  | Batch Requests (Req=Success/PartialSuccess/Total, Item=Success/Total): PutStart:(Req=0/0/0, Item=0/0), PutEnd:(Req=0/0/0, Item=0/0), PutRevoke:(Req=0/0/0, Item=0/0), Get:(Req=0/0/0, Item=0/0), ExistKey:(Req=0/0/0, Item=0/0),  | Eviction: Success/Attempts=0/0, keys=0, size=0 B
I20251208 14:01:29.618252   490 master_service.cpp:651] Storage root directory or cluster ID is not set. persisting data is disabled.
I20251208 14:01:36.541100   484 rpc_service.cpp:40] Master Metrics: Mem Storage: 0 B / 98.23 GB (0.0%) | SSD Storage: 0 B / 0 B | Keys: 0 (soft-pinned: 0) | Requests (Success/Total): PutStart=0/0, PutEnd=0/0, PutRevoke=0/0, Get=0/0, Exist=0/0, Del=0/0, DelAll=0/0,  | Batch Requests (Req=Success/PartialSuccess/Total, Item=Success/Total): PutStart:(Req=0/0/0, Item=0/0), PutEnd:(Req=0/0/0, Item=0/0), PutRevoke:(Req=0/0/0, Item=0/0), Get:(Req=0/0/0, Item=0/0), ExistKey:(Req=0/0/0, Item=0/0),  | Eviction: Success/Attempts=0/0, keys=0, size=0 B
I20251208 14:01:46.541324   484 rpc_service.cpp:40] Master Metrics: Mem Storage: 0 B / 98.23 GB (0.0%) | SSD Storage: 0 B / 0 B | Keys: 0 (soft-pinned: 0) | Requests (Success/Total): PutStart=0/0, PutEnd=0/0, PutRevoke=0/0, Get=0/0, Exist=0/0, Del=0/0, DelAll=0/0,  | Batch Requests (Req=Success/PartialSuccess/Total, Item=Success/Total): PutStart:(Req=0/0/0, Item=0/0), PutEnd:(Req=0/0/0, Item=0/0), PutRevoke:(Req=0/0/0, Item=0/0), Get:(Req=0/0/0, Item=0/0), ExistKey:(Req=0/0/0, Item=0/0),  | Eviction: Success/Attempts=0/0, keys=0, size=0 B

 

 

 

3.效果评价

使用lmcache的benchmark,long-doc-qa测试方法,构建数据集分别两次调用同一个服务,测试ttft的时延。

Benchmarking | LMCache

模型:qwen2.5-7B

测试样本集数据特点:

输入10000,输出50,

20G的存储空间可以保持370KB的token的kvcache,大约35条样本。

 

工具——kvcahe计算器

https://docs.lmcache.ai/getting_started/kv_cache_calculator.html

 

3.1 vllm-ascend+mooncake

 

样本数量102030405060708090100110
HBM-20GB0.41040.37420.33713.09183.10232.92892.86512.81822.79412.73792.6827
HBM-40GB0.41760.33680.29210.32280.31710.25840.25092.72292.71282.68752.6654
HBM-20GB+mooncake-20GB0.50160.44710.42313.65023.1583.15183.01343.10442.95362.92892.9066
HBM-20GB+mooncake-40GB0.51260.51220.43670.57180.55140.55073.0273.10572.86752.89532.8716
HBM-20GB+mooncake-60GB0.50430.45280.4250.53320.51460.50310.54870.52920.53670.53582.8285

 

 

解读:

1.不使用mooncake时,ttft增加的拐点符合预期,和npuMemsize能保存的样本数量一致。

2.使用mooncake时,ttft增加的拐点符合预期,和推理服务配置的mooncake存储空间能保存的样本数量一致。

 

 

 

 

 

 

 

 

源码地址: https://pan.quark.cn/s/44d07910d9c3 标题“PCBM_LP_Viewer_V2009”标识了一种专门服务于PCB焊盘构建的软件应用,其版本号记录为2009。 该软件的核心用途在于辅助用户依照IPC7351国际标准来构建精密的焊盘构造,从而保障电子设备的稳定运行与生产品质。 PCB焊盘在印制电路板(Printed Circuit Board)的设计环节中占据核心地位,它承担着将电子元件的引脚与电路板进行电气连接的任务,确保两者间的连接性能。 焊盘的构造规划对焊接成效及整个电路板的运作效能具有直接影响。 在PCBM LP Viewer V2009软件中,使用者能够借助前沿的工具与参数设定,对焊盘的形态、尺寸、间距等要素进行个性化定制,以适应不同元器件与实际应用场景的要求。 IPC7351是由国际电子互连技术协会颁布的一套规范体系,它为电子产品的焊盘构建提供了统一的准则。 该规范体系涉及焊盘的尺寸规格、形态样式、热管理效能、机械耐等多个维度,致于提升焊盘的工作表现,减少生产过程中的瑕疵,增强电子产品在高温条件下的运行稳定性。 PCBM LP Viewer V2009软件严格遵循这一规范体系,使得设计人员能够便捷地构建出符合要求的焊盘,进而降低设计过程中的潜在风险,提高产品的整体质量。 操作PCBM LP Viewer V2009软件时,用户可以体验到以下特性:1. **图形化界面**:设计出直观且操作简便的界面,让焊盘设计流程更为顺畅。 2. **自定义参数**:能够根据元器件的具体规格对焊盘的尺寸、形态及孔径等参数进行灵活调整。 3. **自动计**:软件能够自动核出最优的焊盘尺寸,并按照IPC7351标准进行优化处理。 4. **...
代码下载地址: https://pan.quark.cn/s/5c2ff67041b8 在Android应用构建过程中,ListView被广泛采用作为一个展示大量数据条目的控件。 该控件具备出色的数据滚动处理能,能够依据可用屏幕空间进行视图的动态加载与回收,以此实现内存的有效节省。 本文将详细阐述在Android平台如何构建一个ListView,并展示如何使其包含多种不同规格的条目。 1. **ListView的构成框架** ListView由一系列视图(条目)构成,每个视图对应数据集中的单个数据项。 这些条目通过适配器进行连接,适配器负责建立数据与视图的联系,并决定数据在ListView中的呈现方式。 2. **适配器的设计** 在Android系统里,通常选用BaseAdapter或者诸如ArrayAdapter、CursorAdapter等预设适配器来为ListView提供适配服务。 适配器需要重新设计以下功能: - `getCount()`: 返回ListView中包含的条目总数。 - `getItem(int position)`: 根据指定位置提取数据对象。 - `getItemId(int position)`: 获取指定位置条目的唯一标识符,一般返回位置索引值。 - `getView(int position, View convertView, ViewGroup parent)`: 为ListView生成或复用条目视图。 这是适配器的关键部分,依据数据对象和可复用的视图来填充条目内容。 3. **定制化适配器** 当ListView需要展示多种格式条目时,可以设计专属的适配器。 在`getView()`方法中,依据数据类型返回不同的视图样式。 可以通过检查数据对...
源码地址: https://pan.quark.cn/s/db95d26ecc9b “图书管理(借阅)”小程序作为一个入门级项目,主要运用C#编程语言进行开发,通过整合tabControl控件,致于构建一个基础的图书管理平台,其核心功能在于图书信息的维护以及借阅流程的处理。 对于希望掌握C#及Windows应用程序开发的初学者而言,该项目提供了一个理想的实践环境。 在C#开发环境中,tabControl被视作一种常见的界面组件,它赋予了用户在不同标签页间切换以组织与展示信息的能。 在此图书管理应用中,tabControl或许被用于划分不同的功能模块,诸如“图书目录”、“借阅详情”和“用户档案”等,使用者借此能够便捷地在各项功能间切换操作。 图书管理系统的数据管理通常依赖于数据库技术。 依据描述,该应用内含数据库文件,但作者指出“运行时需自行添加”,暗示数据库可能并未与项目原生集成,使用者必须手动进行配置或导入数据库方可正常运行。 数据库的构建可能包含书籍资料表(涵盖书名、作者、出版社、存量等字段)、借阅记录表(涉及借阅者、借阅时段、归还时段等字段)以及用户资料表(包含用户名、密码、联络方式等字段)。 在现实中的图书管理平台,为了完成借阅操作,开发者需设计逻辑以处理以下任务:1. **新增/修改书籍信息**:赋予管理员录入新书籍资料或更新现有书籍详情的权限。 2. **检索书籍**:使用者可依据书名、作者等条件查询书籍。 3. **执行借阅**:用户选择借书时,系统将核查库存,并修正借阅记录,同步减少相应书籍的存量。 4. **处理还书**:书籍归还时,系统将更新借阅记录并补充库存。 5. **用户账户管理**:涵盖注册、登录、调整个人资料等操作。 6. **权限管理**:区分普通...
在分布式系统中实现 PD(Placement Driver,通常指调度组件,如 etcd 中的调度逻辑)的分离部署,并整合 Sglang 与 Mooncake 框架或工具,需要从架构设计、组件解耦、通信机制及性能优化等多个方面进行系统性规划。以下为实现方案的详细说明。 ### ### 架构设计与组件解耦 PD 的分离部署意味着将调度逻辑从主数据存储节点中剥离出来,作为独立服务运行。这种设计可以提升系统的可扩展性与稳定性。例如,在 etcd 场景中,etcd 的 Raft 协议本身支持将 Raft 成员与调度逻辑分离[^1]。具体做法包括: - **独立部署 PD 节点**:将调度器(PD)部署在独立的节点上,避免与数据节点(如 etcd 成员)混用资源。 - **多副本部署**:为了高可用性,PD 服务应部署为多副本,通常为奇数个节点(如 3 或 5),以支持 Raft 一致性协议。 ### ### 通信机制设计 在分离部署后,PD 与数据节点之间需要建立高效的通信机制。通常采用 gRPC 或基于 HTTP/2 的 API 进行通信。例如: - **gRPC 通信**:使用 Protocol Buffers 定义接口,确保 PD 与数据节点之间的高效、结构化通信。 - **心跳机制**:PD 需要定期接收来自数据节点的心跳,以监控其状态并做出调度决策。 ### ### 集成 Sglang 与 Mooncake Sglang 是一个用于加速大语言模型推理的框架,而 Mooncake 是一个用于模型部署与服务化的工具链。要将它们集成到分布式系统中,需考虑以下方面: - **服务注册与发现**:PD 作为调度中心,应支持服务注册与发现机制,例如通过 etcd 或 Consul 实现服务发现。Sglang 和 Mooncake 的服务实例启动后应向 PD 注册自身状态。 - **负载均衡与调度策略**:PD 需根据资源利用率、网络延迟等指标动态调度请求到合适的 Sglang 或 Mooncake 实例。例如,可实现基于最少连接数或最小响应时间的调度策略。 - **配置管理**:Mooncake 可通过 PD 获取全局配置信息,如模型版本、推理参数等,确保服务一致性。 ### ### 示例配置(gRPC 服务注册) 以下是一个简单的 gRPC 服务注册示例,用于 Sglang 实例向 PD 注册: ```protobuf // pd_service.proto syntax = "proto3"; package pd; service PDService { rpc RegisterInstance (InstanceInfo) returns (RegistrationResponse); } message InstanceInfo { string instance_id = 1; string ip = 2; int32 port = 3; string service_type = 4; // "sglang" or "mooncake" } message RegistrationResponse { bool success = 1; } ``` ```python # 示例注册客户端代码 import grpc from pd_service_pb2 import InstanceInfo, RegistrationResponse from pd_service_pb2_grpc import PDServiceStub def register_with_pd(pd_address, instance_info): channel = grpc.insecure_channel(pd_address) stub = PDServiceStub(channel) response = stub.RegisterInstance(instance_info) return response.success ``` ### ### 性能优化与监控 - **缓存机制**:PD 可缓存部分调度决策,减少重复计。 - **指标采集**:集成 Prometheus 等监控工具,采集 PD、Sglang 和 Mooncake 的运行指标,如 QPS、延迟、资源利用率等。 - **自动扩缩容**:基于监控数据,PD 可触发自动扩缩容策略,动态调整 Sglang 或 Mooncake 的实例数量。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值