Olares 加速器资源管理实战:GPU 模式切换、应用调度与 VRAM 释放 云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载Olares 将 GPU、集成加速芯片与 CPU 兜底资源统一视为集群中的共享加速资源为 AI 推理、图像与视频生成、转码、游戏等负载提供按需调度能力。本篇指南基于 Olares 官方文档与管理界面源码系统讲解资源分配机制、三种 GPU 共享模式及其内存调度规则并完整演示查看资源、切换模式、恢复应用并手动分配资源、从 GPU 上移除应用等日常操作帮你把每一块显存VRAM都用在刀刃上。理解加速器资源分配机制Olares 把 GPU 及其他加速设备当作集群内的共享资源来管理而不是让每个应用直接操作硬件。当一个应用声明了加速器需求后Olares 会在集群中查找满足条件的资源并将应用绑定到容量充足的那块资源上。从源码结构看这一层能力由设置中心的 GPU 管理模块承载GPUPage.vue 负责资源详情与模式切换的界面gpu.ts 中的useGPUStore则封装了对后端 GPU 接口的调用包括获取 GPU 列表/api/gpu/list、设置共享模式/api/gpu/mode、绑定应用/api/gpu/update/app、解绑应用/api/gpu/unassign/app以及批量切换分配/api/gpu/assignments/bulk。对依赖 GPU 的应用Olares 在分配时会综合考量以下因素资源类型例如NVIDIA GPUGPU 模式例如Time slicing、Memory slicing或Exclusive显存总量与空闲量Total / free VRAM应用是否允许绑定一块或多块 GPU已分配给同一块资源的其他应用。当你安装一个需要 GPU 资源的新应用时只要存在足够容量的匹配资源Olares 会自动将其绑定到合适的 GPU。如果应用后来被停止或者你想换一块 GPU、换一种模式都可以在恢复应用时手动指定资源。支持的资源类型Olares 的加速器页面可以展示以下资源类型| 资源类型 | 说明 | | -- | -- | |NVIDIA| 通用 NVIDIA GPU。 | |NVIDIA GB10| NVIDIA GB10 SoC 设备。 | |Apple M-series| Apple M 系列芯片。 | |AMD Strix Halo| AMD Strix Halo 设备。 | |CPU| 没有可用加速设备时的兜底资源。 |注意当前版本不覆盖 AMD GPU 与 AMD APU 设备。GPU 模式对于受支持的 GPU 资源模式决定了多个应用如何共享这块 GPU。并非每种加速器都支持全部三种模式——模式下拉框中只会列出该资源支持的模式。前端源码中VRAMMode枚举与vramModelMaps配置见 constant/index.ts定义了三种模式的代号与描述0对应 App exclusive1对应 Memory slicing2对应 Time slicing。| 模式 | 说明 | 适用场景与注意事项 | | -- | -- | -- | |Time slicing时间切片 | 多个应用轮流使用同一块 GPU 的计算与显存。每个应用都能看到完整的 GPU但工作负载以切片方式运行。 |最适合同时运行多个依赖 GPU 的应用。注意每个应用的配额固定为 GPU 的完整独占显存不可编辑启动还可能被下方描述的节点内存检查拦截。 | |Memory slicing显存切片 | 多个应用共享一块 GPU各自获得固定的显存分配。 |最适合在控制显存占用的前提下运行多个依赖 GPU 的应用。注意启动时 Olares 默认分配应用所需的最小显存你可以在后续调整配额。 | |Exclusive独占 | 单个应用获得 GPU 的完整访问权。 |最适合运行追求极致性能的重负载如大模型、渲染或高端游戏。注意在资源释放之前其他应用无法绑定到这块 GPU。 |Time slicing 模式下的节点内存计算规则在Time slicing模式下Olares 目前按以下方式检查节点内存所需内存应用内存需求 GPU 独占显存调度阈值以下的可用内存节点总内存 × 90% - 已用节点内存内存缺口所需内存 - 可用内存举例假设某应用需要 20 GiB 内存GPU 拥有 16 GiB 独占显存所需内存20 GiB 16 GiB 36 GiB节点总内存 46.89 GiB、已用 7.41 GiB 时的可用内存46.89 GiB × 90% - 7.41 GiB 34.79 GiB内存缺口36 GiB - 34.79 GiB 1.21 GiB由于缺口大于零Olares 无法在该节点上调度这个应用。查看加速器资源进入SettingsAccelerator即可查看集群中所有节点的 GPU 及其他加速器资源。每个资源卡片/条目会展示节点名称Node name资源类型例如NVIDIA GPU节点上的独占显存Dedicated VRAMGPU 型号例如NVIDIA GeForce RTX 4060 Ti当前共享模式例如Time slicing、Memory slicing或Exclusive当前已分配到该资源的应用。界面上展示的 GPU 信息字段与前端GPUInfo接口一一对应见 stores/settings/gpu.ts包括nodeName、typeGPU 型号、devmem独占显存、sharemode当前模式、allowedShareModes该资源支持的模式列表以及apps已分配应用。模式下拉框正是基于allowedShareModes渲染的这也是文档中模式下拉框只显示该资源支持的模式这一说法的实现来源。切换 GPU 模式警告切换模式会停止当前使用该 GPU 的所有应用并移除它们已分配的 GPU 资源。要再次使用这些应用需要重新分配资源并启动它们。进入SettingsAccelerator在资源卡片上点击Manage。在Manage node页面找到目标 GPU打开模式下拉框选择Time slicing、Memory slicing或Exclusive。模式切换动作在源码中对应useGPUStore的setGpuMode(mode, id)方法它会向后端/api/gpu/mode发送id与mode两个字段成功后自动刷新 GPU 列表见 stores/settings/gpu.ts。前端在选择后触发的vramUpdate回调会携带所选模式调用该方法页面随之根据新模式切换到对应的详情子组件SingleModeDetail/MemorySlicingModeDetail/TimeSlicingModeDetail见 GPUPage.vue。恢复应用并手动分配资源你可以在Settings或Market中恢复已停止的应用并手动为其分配资源。打开以下任一位置SettingsApplicationsMarketMy Olares。找到目标应用并点击Resume。在启动对话框顶部查看应用的资源需求包括资源类型、GPU 绑定能力与显存需求。在Select GPUs下选择一块资源。对话框会展示该资源的独占显存、共享模式、当前应用的配额以及已分配的应用。如果应用无法启动请按内联提示处理如果可用配额低于应用的最低需求展开Assigned apps点击某个应用的Remove释放资源或另选一块 GPU。如果 GPU 的独占显存总量本身就低于应用的最低需求移除应用也无济于事请另选一块 GPU。在Time slicing模式下启动还可能被上文提到的节点内存检查拦截。提示信息会显示节点的总内存、已用内存与所需内存可稍后重试或另选节点。在Memory slicing模式下Quota for current app默认取应用的最小显存需求。如需调整直接在配额输入框中输入新值该值不能超过可用配额。提示重新分配显存应用分配完成后无法再调整显存。如需更改必须先把应用从 GPU 上移除再重新恢复并分配。点击Launch。这一流程中Memory slicing 模式下按应用最小显存需求分配、并允许手动上调的逻辑在前端有明确的对应实现useGPU组合函数见 pages/settings/GPU/gpu.ts会解析每个应用的requiredGpu最小显存需求并校验候选应用的最小显存不得超过当前 GPU 的memoryAvailable可用显存只有满足条件的应用才会出现在可分配列表中。从 GPU 上移除应用将应用从 GPU 上移除会停止该应用并释放其硬件资源。即使当下不打算启动其他应用你也可以通过这个流程主动释放资源操作入口在Settings中。之后要再次使用该应用需要重新分配资源并启动。警告如果应用绑定了多块 GPU或绑定了跨节点的 GPU从其中一块 GPU 上移除该应用会释放该应用分配的所有 GPU 资源并停止应用。进入SettingsAccelerator在资源卡片上点击Manage。在Assigned apps下找到目标应用点击Remove。在确认对话框中点击Remove。提示资源释放可能需要一点时间。如果移除后暂时没有资源可立即分配给该应用请刷新资源列表后再次检查。源码层面解绑动作对应useGPUStore的unbindApplication(mode, id, appName)方法它会向后端/api/gpu/unassign/app提交 GPU、模式与应用名三个字段而移除后释放全部关联资源并停止应用这一语义则由前端UnbindGPU/SwitchGPUDialog等组件见 pages/settings/GPU/Components配合后端批量分配接口/api/gpu/assignments/bulk共同实现。延伸用 CLI 与监控看板掌握 GPU 状态除了设置中心的 Accelerator 页面你还可以借助其他工具观察 GPU 资源Dashboard 监控Olares 的 Dashboard 应用提供 GPU 使用率、显存占用等实时指标适合在集群维度追踪资源变化。多节点集群中总览面板展示全节点聚合结果资源详情页则按节点拆分展示。更多细节参见 监控资源使用。CLI 命令CLI 提供了 GPU 相关的安装、卸载、启用、禁用与状态查询命令见 cli/cmd/ctl/gpu/root.goDashboard 的 GPU 列表、任务详情与监控查询则通过 HAMI 的/hami/api/vgpu/v1/gpus、/hami/api/vgpu/v1/containers等接口实现见 cli/pkg/dashboard/gpu.go。注意HAMI 接口中的shareMode取值0/1/2分别对应App exclusive、Memory slicing、Time slicing与设置页展示的模式一一对应见GPUModeLabel的映射逻辑。常见问题与排障指引Memory slicing 模式下应用安装/恢复后一直处于 Stopped 状态通常是因为 GPU 上已有应用占用了大部分显存可用配额低于目标应用的最小显存需求。可参考 GPU 应用在安装或恢复后保持停止 中的处理步骤在启动对话框的Assigned apps中移除暂不需要的应用以释放显存或直接调低某个应用的显存分配但不能低于其自身需求然后重新恢复目标应用。Time slicing 模式下应用无法启动除显存因素外还需检查节点内存是否满足应用内存需求 GPU 独占显存的计算结果按启动对话框中的提示稍后重试或更换节点。移除应用后资源未立即释放资源释放存在短暂延迟刷新资源列表后再次确认即可。赞分享云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载相关推荐CsvHelper 资源释放实战深入理解 IDisposable 与 using 模式CsvHelper 资源释放实战深入理解 IDisposable 与 using 模式 CsvHelper 的读取与写入操作建立在 System.IO 的流与后端数据工程GASDocumentation内存管理资源加载与释放GASDocumentation内存管理资源加载与释放 概述 在Unreal Engine 5的Gameplay Ability SystemGAS项目中示例工程游戏开发Ray 加速器支持完全指南GPU/TPU/NPU 资源调度与实战配置Ray 加速器支持完全指南GPU/TPU/NPU 资源调度与实战配置 Ray 将 GPU、TPU、NPU 等加速器抽象为内置资源类型允许任务Task与人工智能分布式训练强化学习任务调度模型推理服务后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考