NexGPU-算力租赁,GPU服务器,GPU云算力,AI服务器租用-新闻博客 - Kubernetes
type: channel
link: https://nexgpu.net/blog/index.php/tag/Kubernetes/
items: 云GPU利用率仅5%？MIG分区实操提效

云GPU利用率仅5%？MIG分区实操提效
type: item
date: 2026-07-15T17:26:48+08:00
description: 最近一份覆盖数万Kubernetes集群的分析数据，把AI基础设施的尴尬摊开了：GPU平均利用率只有5%。CPU大概8%，内存20%，GPU反而垫底。这意味着企业掏钱买来的昂贵算力，95%时间在空转。健康水平大约在50%左右，差距巨大。有人把整机房的H100、H200囤着，却因为“怕抢不到”而长期闲置，结果账单照付，产出寥寥。问题不在卡本身性能差，而在分配方式太粗暴。默认情况下，一个Pod请求nvidia.com/gpu: 1就独占整张物理卡。轻量推理、小模型微调、embedding服务，往往只用到10%-40%算力，剩下的全浪费。训练任务高峰期能冲到80%以上，但平均下来还是低。开发者习惯“先申请整卡再说”，实验跑完也不及时释放，节点就这么挂着烧钱。一张H100闲置一小时成本不低，团队规模稍大，一个月就能冒出好几万美元的隐形支出。更糟的是，软件层面的时间共享（time-slicing）虽然能把一张卡虚拟成多个，但没有硬件隔离。一个任务OOM或者抢带宽，容易拖累邻居。生产环境尤其怕这种噪声。这时候，硬件级分区就派上用场了。NVIDIA的Multi-Instance GPU（MIG）就是针对这事儿的。它把一张支持的卡（A100、H100、H200，以及更新的Blackwell系列）切成最多7个独立实例。每个实例有自己的计算核心、高带宽内存、缓存和带宽配额，故障完全隔离。一张卡可以同时跑多个不同大小的推理服务，或者混合训练+推理，互不干扰。管理员还能动态重配：白天切成多个小实例服务低吞吐推理，晚上合成大实例做训练。实操上，Kubernetes环境最常见。先装好NVIDIA GPU Operator。然后通过ConfigMap定义分区配置。举例，H100 80GB常见几种：1g.10gb：7个实例，适合小分类器或轻量embedding2g.20gb：3个，适合7B级模型开发测试3g.40gb：2个，适合中等规模推理或微调全卡：留给大模型训练配置大概长这样（简化版）：apiVersion: v1 kind: ConfigMap metadata: name: default-mig-parted-config namespace: gpu-operator data: config.yaml: | version: v1 mig-configs: all-balanced: - devices: all mig-enabled: true mig-devices: "1g.10gb": 2 "2g.20gb": 1 "3g.40gb": 1应用后，给节点打标签激活，比如nvidia.com/mig.config=all-balanced。注意：改配置前必须drain节点，正在跑的Pod会被驱逐，所以选维护窗口，或者配好PodDisruptionBudget。Pod请求时直接写nvidia.com/mig-2g.20gb: 1就行，调度器会匹配对应实例。有团队实测，原先一张卡只跑一个服务，利用率长期20%以下；切成多个后，同一硬件同时服务3-5个轻量任务，整体利用率轻松上到60%以上。再叠加上弹性，效果更明显。有人算过，把机队从60%推到85%有效利用率，相当于把固定成本摊到更多有用GPU小时上，单小时有效成本能降大约30%。时间切片适合开发环境或极轻负载，配置更简单，通过GPU Operator开replicas就行，一张卡虚拟成4-8个。但没有内存隔离，vLLM这类默认占90%显存的服务得手动调低--gpu-memory-utilization，不然直接OOM。生产优先MIG。动态资源分配（DRA）最近在Kubernetes 1.34正式GA，进一步解放了调度。不再死盯节点标签和计数器，工作负载可以直接声明需要的属性：多少显存、什么架构、是否支持NVLink。驱动发布ResourceSlice，调度更灵活。多租户、多模型混部场景特别香。配合MIG，能把碎片化资源拼得更紧。监控是必须的。装DCGM Exporter，盯几个关键指标：GPU利用率、显存使用/空闲、功耗、时钟。设告警：利用率连续30分钟低于20%就提醒，可能是该缩容或重分区的信号；显存超90%持续5分钟，考虑换更大实例或再切一刀。Grafana有现成的NVIDIA仪表盘，直接套。常见误区也得避。一是盲目全切最小实例，大模型KV缓存一上来就爆。先评估模型大小和batch，7B FP16大概14GB权重，加上下文再加几GB，2g.20gb可能紧，优先3g.40gb。二是忽略节点生命周期。实验节点跑完不自动缩到零，照样烧钱。用支持GPU的自动扩缩容，空闲30分钟就下线，预热时间3-8分钟要提前预留。三是全用按需实例，Spot比例极低。可中断的训练、批推理、预处理，Spot能省六…