27届大模型面试准备(七十一):多租户 GPU 虚拟化与推理隔离工程——MIG、MPS 与噪声邻居治理

发布时间:2026/9/2 1:35:03

27届大模型面试准备(七十一):多租户 GPU 虚拟化与推理隔离工程——MIG、MPS 与噪声邻居治理
27届大模型面试准备七十一多租户 GPU 虚拟化与推理隔离工程——MIG、MPS 与噪声邻居治理引言上篇六十九讲 Prefill-Decode 分离把单卡算力按阶段拆开调度七十讲网关层如何把请求路由到不同实例。本篇把视角再抬一层当一张 A100/H100 要同时服务多个业务方多租户时怎么在显存、算力、延迟三个维度做隔离与复用既把卡利用率榨干又不让某个租户的突发流量把别人的 P99 拖垮。这是华为云、大模型推理平台岗的高频题也是面试里最容易区分只会调 API和真做过平台的分水岭。前文链接A70 推理服务负载均衡与智能请求路由、A69 Prefill-Decode 分离式推理架构、A66 推理调度与弹性扩缩容工程。┌──────────────────────────────────────────┐ │ 推理网关 / 多租户调度器 │ │ 租户标识 → 路由 → 配额 → 优先级队列 → 限流 │ └───────────────────┬──────────────────────┘ │ ┌─────────────────────────────┼─────────────────────────────┐ │ 租户A(高优/SLA) │ 租户B(中优) │ 租户C(best-effort) ▼ ▼ ▼ ┌───────────┐ ┌───────────┐ ┌──────────────┐ │ MIG slice │ │ MIG slice │ │ 共享 MPS 时间片│ │ 1g.10gb │ │ 3g.40gb │ │ (无硬隔离) │ └───────────┘ └───────────┘ └──────────────┘ │ │ │ └─────────────────────────────┴─────────────────────────────┘ ▼ ┌────────────────────────────────────┐ │ NVIDIA A100 80GB 单卡 │ │ SM 阵列 / HBM / NVLink 物理资源 │ └────────────────────────────────────┘表四种隔离手段对比手段隔离粒度算力隔离显存隔离切换开销典型适用场景MIG硬件物理切片强独占 SM 子集强独占 HBM 分区中需重建 slice稳定多租户、强 SLA 合同MPS进程级共享引擎中按 CUDA context 分时弱共享显存池低同信任域、提利用率时间片调度调度器级弱时分复用整卡无低best-effort 错峰复用容器Cgroup主机级依赖驱动/MPS依赖驱动低物理机多实例混部一、为什么推理平台必须做多租户隔离云上推理的两个矛盾(1) 单卡跑一个小模型太浪费7B/13B 模型 decode 阶段显存占用可能只有 8GB剩下 70GB 空转(2) 把多个模型塞一张卡某个租户来一波长上下文突发就会把共享的 HBM 带宽和 SM 占满别人的 TTFT 从 200ms 飙到 3s。不做隔离利用率和公平性只能二选一。面试常问你们线上一张卡跑几个模型怎么保证互不干扰标准答案不是用 Docker而是分层硬件切片MIG→ 驱动级共享MPS→ 调度器配额K8s/Volcano→ 应用级限流网关。二、硬件级 MIG把一张卡切成多张小卡MIGMulti-Instance GPU在 A100/H100 上把 SM 阵列、L2 Cache、HBM 带宽、显存做物理分区。一个 7g.40gb 的 slice 就是一张逻辑 GPU有独立的显存和算力一个 slice 的故障不影响其他 slice。# 创建 1 个 1g.10gb 1 个 3g.40gb 的组合需先置 admin 模式sudonvidia-smi-i0-mig1sudonvidia-smimig-i0-cgi1g.10gb,3g.40gb-C# 查看 slicenvidia-smimig-lgi# 输出示例# GI ID CI ID Profile# 9 0 1g.10gb# 10 1 3g.40gb# 应用侧用 CUDA_VISIBLE_DEVICES 绑定到具体 GICUDA_VISIBLE_DEVICES9python-mvllm.entrypoints.openai.api_server--modelqwen2.5-7bMIG 的代价slice 之间不能共享 KV Cache跨 slice 不能做张量并行且创建/销毁 slice 需要短暂中断整卡。所以它适合长期稳定、SLA 不同的租户组合不适合频繁变配。三、驱动级 MPS同信任域提利用率MPSMulti-Process Service让多个进程共用同一个 CUDA contextkernel 在 SM 上并发调度显存仍共享。它没有硬隔离但能把两张卡各跑 30% 利用率的两个小模型合并到一张卡跑 60%省一张卡的钱。# 启动 MPS 服务端按用户/按卡exportCUDA_VISIBLE_DEVICES0nvidia-cuda-mps-control-d# 之后该卡上的所有 CUDA 进程都走 MPS 共享引擎# 限制单进程可用 SM 比例需 MPS 配置 配合 cgroupsechoset_default_active_thread_percentage 50|nvidia-cuda-mps-control注意 MPS 下的故障传染一个进程显存越界可能拖垮同 context 的其他进程。所以 MPS 只在同团队、同信任等级的内部租户间用对外售卖必须用 MIG。四、显存配额与上下文隔离即使不用 MIG也要防止某个租户申请超大 KV Cache 把整卡 OOM。做法是在调度器层给每个模型实例设显存预算并在推理引擎里做硬性上限。# 伪代码按租户维度限制 KV Cache 预算classTenantGPUScheduler:def__init__(self,total_hbm_gb80):self.budget{}# tenant - 显存配额(GB)self.used{}# tenant - 已用(GB)defadmit(self,tenant,need_gb):ifself.used.get(tenant,0)need_gbself.budget.get(tenant,0):returnFalse,tenant_gpu_quota_exceededifsum(self.used.values())need_gbself.total_hbm_gb*0.92:returnFalse,node_hbm_pressureself.used[tenant]self.used.get(tenant,0)need_gbreturnTrue,okdefrelease(self,tenant,free_gb):self.used[tenant]max(0,self.used.get(tenant,0)-free_gb)五、噪声邻居Noisy Neighbor治理噪声邻居指同卡其他租户的突发把你的延迟拖垮。治理三板斧优先级抢占高优租户到来时低优租户的长 decode 被挂起或限速。带宽隔离MIG 天然隔离 HBM 带宽非 MIG 场景用 MPS thread percentage 限流近似。延迟 SLO 监控每个租户独立打 P99越界自动触发扩容或迁移。# 优先级队列 加权公平调度WRRimportheapqclassPriorityAdmitter:def__init__(self):self.queues{0:[],1:[],2:[]}# 0高 1中 2低defschedule(self):# 高优先发中优按权重低优有空才发forlevelin(0,1,2):ifself.queues[level]:returnself.queues[level].pop(0)returnNone六、调度器层K8s Device Plugin 与公平性在 K8s 上MIG 通过nvidia.com/mig-1g.10gb这类扩展资源暴露Volcano / 自研调度器按租户 namespace 做配额ResourceQuota和优先级PriorityClass。避免一个租户 Pod 占满节点 MIG slice 导致别人 Pending。面试速答问MIG 和 MPS 有什么区别什么时候用哪个答MIG 是硬件物理切片算力和显存都硬隔离故障不传染适合对外多租户强 SLAMPS 是驱动级共享引擎提利用率但不隔离故障可能传染适合内部同信任域复用。对外卖算力用 MIG内部提效用 MPS。问一张卡跑多个模型怎么防止 OOM 互相影响答三层——硬件用 MIG 物理隔离显存驱动/调度层给每实例设显存预算和 KV Cache 上限节点层保留 8% HBM 余量防整卡 OOM。问噪声邻居怎么治答优先级抢占 带宽/算力配额 每租户独立 P99 SLO 监控越界自动限速、扩容或迁移。高频追问清单MIG slice 之间能共享 KV Cache 吗跨 slice 张量并行有什么限制MPS 故障传染的根因是什么生产上怎么规避best-effort 租户和 SLA 租户混部调度器怎么做加权公平显存预算按 tenant 还是按 model instance 计量更合理长上下文突发怎么处理K8s 上 MIG 资源如何暴露和做 namespace 配额节点 HBM 压力时应该拒绝新请求还是抢占低优请求怎么选租户级限流QPS/并发和 GPU 配额怎么联动单卡多模型场景下NVLink 带宽争用怎么观测和隔离

相关新闻

MCP规范驱动的Agent智能体评测自动合成方法与实践

MCP规范驱动的Agent智能体评测自动合成方法与实践

2026/9/2 1:35:03

做 Agent 相关开发的读者可能最近都有同感:Agent 用起来越来越顺手,但评测一个 Agent 到底好不好用,却越来越难。难点不在跑通一个 Demo,而在“怎么证明它在真实任务上可靠”。工具调用是否准确、多步推理是否稳定、边界情况是否崩…

用Python爬取DigiKey元器件价格库存:从BOM清单到CSV的自动化方案

用Python爬取DigiKey元器件价格库存:从BOM清单到CSV的自动化方案

2026/9/2 1:35:03

简介:digikey_webscraper 是一个基于 Python 的 Web Scraping 工具,面向电子工程师与采购人员,用于从 Digi-Key Electronics 自动提取元件价格、库存与属性等元数据,能够替代人工逐页查询,提升批量数据采集效率。压缩包…

Simulink手把手搭建FOC仿真:从坐标变换到SVPWM的电机控制算法实践

Simulink手把手搭建FOC仿真:从坐标变换到SVPWM的电机控制算法实践

2026/9/2 1:25:02

这次我们来看一个面向电机控制初学者的 FOC 仿真教程项目。FOC(Field-Oriented Control,磁场定向控制)是驱动永磁同步电机(PMSM)和无刷直流电机(BLDC)的核心技术,但其背后的坐标变换…

开源效率启动器Tinycast:从入门到插件开发实战

开源效率启动器Tinycast:从入门到插件开发实战

2026/9/2 4:05:22

你好,我是专注于分享实用开发工具与效率提升方案的博主。在日常开发中,你是否也厌倦了在多个应用、文件夹和网页间频繁切换鼠标,只为找到一个文件或执行一个简单命令?如果你对 macOS 上广受好评的效率启动器 Raycast 心生向往&…

自制简便型2.4G频谱仪:从射频前端到FFT频谱显示实战

自制简便型2.4G频谱仪:从射频前端到FFT频谱显示实战

2026/9/2 4:05:22

简介:这是一份面向航模玩家与嵌入式开发者的简便型2.4G频谱仪开源资料,基于Arduino与CC2500射频芯片实现,用于实时监测2.4G频段信号分布、排查遥控干扰,并辅助飞行前场地检测。资源共10个文件,以ino源码(含…

OrCAD Capture 16.6精简免安装版:原理、配置与实战指南

OrCAD Capture 16.6精简免安装版:原理、配置与实战指南

2026/9/2 4:05:22

简介:OrCAD Capture 16.6 精简免安装版,面向硬件设计工程师与电子类学生,尤其适合需要快速搭建原理图设计环境、进行电路仿真,或作为备用EDA工作环境的场景。它无需执行完整安装,直接解压即可部署,减小系统…

ESP32 I2S驱动功放全流程:从接线到无声排查

ESP32 I2S驱动功放全流程:从接线到无声排查

2026/9/2 4:05:22

每次有朋友问我,ESP32 怎么把音频放出来,我第一句话都是:先别急着写 i2s 初始化,先搞清楚你的功放到底能不能吃 i2s 信号。在 ESP-IDF 开发里,用 i2s 驱动功放,听起来只是几根线的问题,实际落地…

Vibe Coding实战:AI辅助插件开发全流程指南

Vibe Coding实战:AI辅助插件开发全流程指南

2026/9/2 4:05:22

这次我们来看一个名为“我也来用vibe coding做个插件”的项目。从标题和当前的热词趋势来看,这显然是一个关于利用“Vibe Coding”理念或工具来开发自定义插件的实践分享。Vibe Coding 并非一个具体的软件,而更像是一种开发理念或工作流,强调…

芯邦CBM209X U盘量产工具UMPToolV7200:从救砖到扩容盘识别

芯邦CBM209X U盘量产工具UMPToolV7200:从救砖到扩容盘识别

2026/9/2 3:55:21

简介:芯邦CBM209X UMPToolV7200量产工具套装面向需要修复扩容盘、缩水盘的玩家、维修人员与数码爱好者,支持CBM209X/E等常见主控,内含ChipGenius识别工具、APTool量产信息清除工具以及UMPTool主量产工具,能完成从主控识别、伪容量…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/1 1:53:39

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

2026/9/2 0:04:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

2026/9/2 0:04:59

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

2026/9/2 0:04:59

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…