持久化模式解决什么
GPU 长时间没有任务时,默认行为是驱动卸载它维护的上下文状态,下一个任务到来时要重新初始化,首个请求因此明显偏慢。持久化模式让驱动保持常驻,代价是空闲时也占着一部分资源,适合推理服务常驻、任务频繁拉起的机器。
基本信息
| 开启命令 | nvidia-smi -pm 1 |
|---|---|
| 固化方式 | nvidia-persistenced 服务 |
| 生效范围 | 重启后丢失,需开机自启 |
| 查看 | nvidia-smi --query-gpu=persistence_mode --format=csv |
| 适合 | 服务常驻、任务频繁启停 |
典型使用场景
- 推理服务常驻但请求稀疏,想避免每次冷启动的初始化开销
- 系统重启后希望状态自动恢复,而不是靠人手工敲命令
- 批量任务频繁拉起短进程,逐个初始化累加起来很可观
- 排查首请求延迟异常偏高,先确认这项设置是否开着
开启与固化
开启与固化
sudo nvidia-smi -pm 1 # 开启(重启后失效)
sudo systemctl enable --now nvidia-persistenced # 固化:重启自动恢复
nvidia-smi --query-gpu=index,persistence_mode --format=csv # 逐卡确认状态
sudo nvidia-smi -pm 0 # 关闭,用于对照验证现象与原因对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 首个请求特别慢 | 驱动卸载状态后重新初始化 | 开启持久化并固化 |
| 状态偶尔变回 Disabled | 驱动重载或服务没开机自启 | 用 systemd 固化并定期核对 |
| 空闲时显存少量占用 | 持久化保留上下文 | 属正常代价,无需处理 |
数据中心驱动常与 nvidia-persistenced 配合常驻;单卡且任务长跑的机器收益有限,任务频繁启停时体感才明显。
判断是否真生效别只看一次命令返回:要确认重启后状态仍是 Enabled,并对照首个请求延迟是否真的下降。
状态字段要逐卡看:多卡机器上个别卡可能未生效,把它写进部署清单,换卡或换驱动后重新确认一次。
收益可以用首个请求延迟量化:开与关各跑一轮对照,把差值记进基线;换卡换驱动之后,这个基线仍然能作为参照。