推理 GPU 的碎片化治理:小模型合卡与大模型独占策略
推理 GPU 的碎片化治理小模型合卡与大模型独占策略一、你的 8×A100 集群 GPU 利用率 35%但新任务调度不上去——全是碎片GPU 集群的碎片化问题比 CPU 集群更严重因为 GPU 的资源粒度是整卡。你不能把 0.3 张 A100 分配给一个小模型——最小的分配单元就是 1 张卡。结果就是集群中每个节点都有 1-2 张空闲卡但加起来够跑一个新任务却没有任何单节点有足够的连续空闲卡。GPU 碎片化的本质是 bin-packing 问题的恶化版。你的集群里混跑了多种规格的推理任务有的模型只要 1 张 A100如 7B 参数的 LLaMA有的要 8 张如 70B 参数模型做 tensor parallelism。当这些小任务和大任务混在一个集群里碎片化是必然结果。治理策略分两个方向对小模型用合卡调度——多个小模型共享一张 GPU 卡利用显存隔离和 MIG 机制。对大模型用独占节点——通过节点亲和性和 taint/toleration 把大模型调度到专用节点不和任何小模型混跑。二、底层机制与原理剖析GPU 碎片化治理的核心是在两个方向发力合卡提高利用率减少浪费独占消除碎片防止切割关键技术手段MIG (Multi-Instance GPU)NVIDIA A100/H100 支持的最强合卡工具。一张 A100-80GB 可以被切割为最多 7 个独立的 GPU InstanceGI每个 GI 有独立的显存、缓存和计算单元。这意味着 7 个 7B 模型可以共享一张 A100每个使用 ~10GB 显存互不干扰。MPS (Multi-Process Service)比 MIG 更老的共享方案允许多个 CUDA 进程共享同一张 GPU 的计算资源。缺点是进程间没有显存隔离——一个进程 OOM 会影响同卡的其他进程。MPS 适合已知资源需求稳定的小模型。节点独占池大模型需要 2-8 张卡做 tensor parallelism调度到专用节点节点上不调度任何其他 Pod。通过 K8s 的nodeSelectortolerationpodAntiAffinity实现。三、生产级代码实现# 1. MIG 分区配置在 GPU 节点上执行 # 将 A100-80GB 切割为 3 个 20GB 2 个 10GB 的分区 # # 生产环境建议在节点初始化时通过 MIG Manager 自动化配置 apiVersion: v1 kind: ConfigMap metadata: name: mig-config namespace: kube-system data: config.yaml: | version: v1 mig-configs: all-1g.10gb: - devices: all mig-enabled: true mig-devices: 1g.10gb: 7 # 7 个 10GB 分区适合 7B 模型 mixed: - devices: [0,1,2,3] mig-enabled: true mig-devices: 3g.40gb: 1 # 1 个 40GB 分区70B 模型量化版 2g.20gb: 2 # 2 个 20GB 分区13B 模型 --- # 2. 小模型 Pod——使用 MIG 分区 apiVersion: v1 kind: Pod metadata: name: llama-7b-inference labels: app: llama-7b gpu-pool: shared # 标记为共享池 spec: nodeSelector: gpu-pool: shared # 只调度到共享池节点 containers: - name: inference image: vllm/vllm-openai:latest resources: limits: nvidia.com/mig-1g.10gb: 1 # 使用 1 个 MIG 10GB 分区 env: - name: CUDA_VISIBLE_DEVICES value: 0 --- # 3. 大模型 Pod——独占节点 apiVersion: apps/v1 kind: Deployment metadata: name: llama-70b-inference spec: replicas: 1 selector: matchLabels: app: llama-70b template: metadata: labels: app: llama-70b gpu-pool: dedicated # 标记为独占池 spec: # 强制调度到大模型专用节点 nodeSelector: gpu-pool: dedicated nvidia.com/gpu.product: NVIDIA-A100-SXM4-80GB # 反亲和不与其他大模型共享节点 affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: gpu-pool operator: In values: - dedicated topologyKey: kubernetes.io/hostname # 容忍专用节点的 taint tolerations: - key: gpu-dedicated operator: Equal value: true effect: NoSchedule containers: - name: inference image: vllm/vllm-openai:latest resources: limits: nvidia.com/gpu: 8 # 独占全部 8 张卡 env: - name: TENSOR_PARALLEL_SIZE value: 8 # 8 卡 Tensor Parallelism节点池管理配置# 节点标签和 taint 配置 # 共享池节点 apiVersion: v1 kind: Node metadata: name: gpu-shared-01 labels: gpu-pool: shared nvidia.com/mig.config: all-1g.10gb spec: taints: [] --- # 独占池节点 apiVersion: v1 kind: Node metadata: name: gpu-dedicated-01 labels: gpu-pool: dedicated spec: taints: - key: gpu-dedicated value: true effect: NoScheduleGPU 碎片整理 Descheduler 配置# 使用 Descheduler 定期整理 GPU 节点碎片 apiVersion: deskcheduler/v1alpha2 kind: DeschedulerPolicy profiles: - name: gpu-defrag pluginConfig: - name: RemovePodsViolatingNodeAffinity args: nodeAffinityType: - requiredDuringSchedulingIgnoredDuringExecution - name: LowNodeUtilization args: thresholds: nvidia.com/gpu: 20 # GPU 利用率 20% cpu: 30 memory: 30 targetThresholds: nvidia.com/gpu: 70 cpu: 70 memory: 70 # 只驱逐低优先级的 Pod # 高优先级生产服务不受影响Go 代码片段——GPU 调度策略决策package gpu // GpuSchedulingStrategy 模型到 GPU 池的分配策略 type GpuSchedulingStrategy struct { ModelSize string // small / medium / large VramRequiredGB int // 显存需求 GpuCount int // 需要的 GPU 数量 UseTensorParallelism bool // 是否使用张量并行 } func (s *GpuSchedulingStrategy) RecommendPool() string { // 判断1: 需要多卡 - 独占池 if s.GpuCount 1 || s.UseTensorParallelism { return dedicated } // 判断2: 显存需求 MIG 分区大小 - 共享池 if s.VramRequiredGB 10 { return shared } if s.VramRequiredGB 20 { return shared // 使用 2g.20gb 分区 } // 判断3: 显存需求超过 MIG 最大分区 - 标准池 return standard }四、边界分析与架构权衡MIG 的限制MIG 分区后 GPU 的 CUDA cores、显存带宽、缓存被分割每个分区的性能不是线性均分的。1g.10gb 分区的 SM流处理器数量是全卡的 1/7某些对 cache 敏感的操作如大 batch size 的 GEMM性能下降可能超过 7 倍。另一个限制是MIG 不支持 P2PGPU 间直连如果你的模型需要跨卡通信不能用 MIG。节点独占的成本独占节点本质上是用一部分 GPU 空闲换取调度确定性和性能隔离。8 卡独占跑一个 70B 模型如果这个模型的请求不均匀如夜间低负载这 8 张卡在低负载时段就是浪费的。需要结合 HPA水平伸缩做动态的节点回收——低负载时把备用节点释放回共享池。适用边界最适合 GPU 数量 8 的集群模型种类 3 种且模型规格差异大有的 1 卡、有的 8 卡的场景。也适合多团队共享 GPU 集群的场景——每个团队的模型可以被分配到不同的节点池。禁用场景不适合 GPU 数量 4 的小集群——池化后的调度灵活性不够。如果所有模型规格相似如全都跑 7B 模型池化的收益不大。NVIDIA A100 以下架构V100、T4不支持 MIG只能用 MPS 做共享。五、结语GPU 碎片化治理的核心是分级池化MIG 分区让多个小模型共享一张卡节点独占让大模型享有完整的卡间通信带宽。关键约束是 MIG 不支持跨卡通信——需要多卡 tensor parallelism 的模型不能用 MIG必须独占节点。治理不是一次性的配置是持续的组合优化——节点池的容量需要根据模型规模和流量模式动态调整。

相关新闻

电商大促的 JVM 调优复盘——一次 Full GC 频繁触发的完整排查与根治

电商大促的 JVM 调优复盘——一次 Full GC 频繁触发的完整排查与根治

电商大促的 JVM 调优复盘——一次 Full GC 频繁触发的完整排查与根治 一、故障现场:双十一流量洪峰下的 Full GC 风暴 2025 年双十一大促的零点刚过 8 分钟,监控大盘突然告警:订单服务的 P99 响应时间从日常的 80ms 飙升到 3200ms&#xff0c…

2026/7/22 4:27:50阅读更多 →
营销推荐系统的大模型化——从协同过滤到生成式推荐的架构转型

营销推荐系统的大模型化——从协同过滤到生成式推荐的架构转型

营销推荐系统的大模型化——从协同过滤到生成式推荐的架构转型 一、协同过滤在电商推荐中的"天花板效应" 某中型电商平台的推荐系统基于 Item-CF(基于物品的协同过滤)已经运行了 3 年。算法逻辑是:找到与用户最近购买/浏览商品相似…

2026/7/22 4:24:59阅读更多 →
支付系统的分布式事务:两阶段提交与 TCC 的落地对比

支付系统的分布式事务:两阶段提交与 TCC 的落地对比

支付系统的分布式事务:两阶段提交与 TCC 的落地对比 一、一笔支付,背后可能涉及三个服务、两个数据库和一个第三方 在电商支付链路中,一笔典型的支付操作涉及以下步骤:扣减用户账户余额、创建支付订单、调用第三方支付渠道、增加商…

2026/7/21 0:33:51阅读更多 →
技术团队中的工具人:从问题定位到自动化解决方案

技术团队中的工具人:从问题定位到自动化解决方案

那天下午,我盯着屏幕上一行行日志,试图定位一个诡异的线上问题。问题本身不复杂,但定位过程像在开一把生锈的锁——你知道锁芯就在那里,但就是找不到那个恰到好处的角度和力道。团队里有人提议直接重启服务,有人建议加…

2026/7/22 4:26:28阅读更多 →
Java开发者转型C++实战指南:跨越思维鸿沟,掌握高性能编程

Java开发者转型C++实战指南:跨越思维鸿沟,掌握高性能编程

1. 转型动机与核心挑战:为什么是C,以及你需要跨越的鸿沟 最近几年,我身边从Java转向C的朋友和同事越来越多。这背后其实有个挺有意思的现象:一方面,Java生态依然庞大,岗位需求稳定;另一方面&…

2026/7/22 4:26:28阅读更多 →
VRChat OSC开源项目实战:从协议原理到故障排查全指南

VRChat OSC开源项目实战:从协议原理到故障排查全指南

1. 项目概述:当VRChat遇上OSC,开源社区的“连接”艺术如果你在VRChat社区里混迹过一段时间,或者热衷于折腾虚拟化身(Avatar)的交互,那你大概率听说过OSC(Open Sound Control)这个词。…

2026/7/22 4:26:28阅读更多 →
TI DSP EMIFA中断与NAND Flash ECC寄存器实战配置指南

TI DSP EMIFA中断与NAND Flash ECC寄存器实战配置指南

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于德州仪器(TI)C6000系列DSP或类似高性能微控制器的项目中,外部存储器接口(EMIFA)和NAND Flash控制器是连接外部世界、扩展系统能力的关键桥梁。然而&#…

2026/7/22 4:26:28阅读更多 →
Windows下Python依赖编译:VS2017安装配置与实战指南

Windows下Python依赖编译:VS2017安装配置与实战指南

1. 项目概述:为什么需要Visual Studio Community 2017来编译Python依赖?如果你在Windows上鼓捣Python,尤其是涉及到需要编译原生扩展(C/C写的那些.pyd或.so文件)的库时,大概率会遇到一个让人头疼的报错&…

2026/7/22 4:26:28阅读更多 →
LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

一、引言:大模型浪潮下的开发困境 随着 ChatGPT 的爆火,大模型(Large Language Model, LLM)已成为开发者工具箱中的新宠。然而,当我们兴奋地拿到 OpenAI API Key,准备大干一场时,却常常陷入这样…

2026/7/22 4:24:28阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →