统一内存机器查显存,四个命令给出四个答案,最大差 17.5 倍

排障 · 4 台 × 121.69 GiB 统一内存L1整理于 2026-10-31 有效期 permanent

同一台 DGX Spark(GB10,121.7 GiB 统一内存)跑着 DeepSeek-V4.1-Flash,同一时刻四个口径:nvidia-smi 的 used_memory 报 94.43 GiB、docker stats 报 5.405 GiB、进程 RSS 求和 1.12 GiB、整机 /proc/meminfo 算出 105.00 GiB。最大最小差 17.5 倍。再加一个 cgroup 的 memory.current = 12.84 GiB,实际是五个数。四个数都没错,各自只回答一块:sglang 用 --mem-fraction-static 0.80 预留的 97.4 GiB 由设备侧直接持有,不进 cgroup 也不进 RSS。更要命的是 GB10 上 nvidia-smi 的 memory.total / memory.used / utilization.memory 全部返回 N/A。

统一内存DGX Spark显存排查nvidia-smiN/Adocker statscgroupMemAvailablesglang本地部署

这条适用于

版本指纹

DGX Spark GB10 / CUDA 13.0 / 驱动 580.178.04 / sglang(镜像 dsv41-4x-spark:local 33.2GB)

具体做法

实测环境:4 × DGX Spark(GB10,MemTotal 127,598,752 kB = 121.69 GiB/台,四台合计 486.75 GiB),CUDA 13.0,驱动 580.178.04,3.7 TB 系统盘。
服务:DeepSeek-V4.1-Flash,sglang 启动参数 --tp 4 --ep-size 4 --mem-fraction-static 0.80 --context-length 1048576 --max-running-requests 8。容器 dsv41-head / dsv41-worker,镜像 33.2 GB,Up 6 days (healthy),Restarts=0,uptime 150.97 小时。
模型体积:`du -sb` = 510,311,051,246 B = 475.26 GiB(510.31 GB)。
【同一时刻四口径(Spark #1)】
· nvidia-smi --query-compute-apps=used_memory → 96,869 MiB = 94.43 GiB
· docker stats --no-stream → 5.405 GiB / 121.7 GiB
· ps -eo rss 求和(python3)→ 1,173,004 KB = 1.12 GiB
· MemTotal − MemAvailable → 105.00 GiB(可用 16.68 GiB)
· cgroup memory.current → 13,782,765,568 B = 12.84 GiB
最大 / 最小 = 94.43 / 5.405 = 17.5 倍。

【四台横向】
smi used:96,693 / 96,691 / 96,693 / 96,691 MiB(极差 2 MiB)
docker:5.405 / 3.837 / 3.428 / 4.003 GiB(极差 1.98 GiB)
整机已用:105.00 / 103.76 / 103.46 / 103.62 GiB;可用 16.68 / 17.93 / 18.23 / 18.07 GiB
⇒ 设备侧几乎一致,容器视图差近 2 GiB —— 容器统计反映进程形态,不反映内存占用。

【整机占用】四台合计 486.75 GiB,模型 475.26 GiB,占用 97.64%,余量 11.49 GiB。
【N/A 三连】memory.total / memory.used / utilization.memory 全 [N/A];power.limit 也 [N/A]。硬件自证:PnP OK / 错误码 0 / nvlddmkm Running / NVML 与 smi 版本均 8.17.16.1088。

失效边界
① 只对统一内存架构(UMA)机型成立;独立显存档(5090D / 5060Ti 等)上 nvidia-smi 读数正常,不适用这套换算。② 具体数值随 --mem-fraction-static、并发、上下文长度变化,方法是稳定的,数字不是。③ GB10 的 N/A 是 NVML 未实现,不是驱动故障,别去重装驱动。
← 模型文件先读头再加载:260 KB 看清 1438 个张量,别让加载器替你全读 16 GiB多机推理先认清拓扑:环上 rank 顺序就是物理顺序,加机器不加带宽 →

← 返回全部排错方案