在服务器上排查“哪个 Docker 容器正在使用 NVIDIA 显卡运行 Python 程序”

张开发
2026/4/4 3:03:52 15 分钟阅读
在服务器上排查“哪个 Docker 容器正在使用 NVIDIA 显卡运行 Python 程序”
核心思路是先找到占用 GPU 的 Python 进程 PID然后通过 Linux 的 cgroup控制组机制将该 PID 映射到对应的 Docker 容器上。三步手动排查查找占用 GPU 的 Python 进程 PID运行以下命令查看显卡使用情况nvidia-smi在输出结果的最下方 Processes: 列表中寻找 Process name 为 python 或 python3 的行记下它对应的 PID例如 PID 为 12345。查找该 PID 所属的 Docker 容器 ID在 Linux 中Docker 容器的进程会被放入特定的 cgroup 中。使用以下命令查看该 PID 的 cgroup 信息将 12345 替换为你查到的 PIDcat/proc/12345/cgroup如果该进程在 Docker 容器中运行你会看到类似下面包含长串哈希值的输出这就是容器 ID1:namesystemd:/docker/a1b2c3d4e5f6…获取容器名称复制上面那串长 ID 的前 12 位比如 a1b2c3d4e5f6然后运行dockerps|grepa1b2c3d4e5f6这样你就能看到是哪个镜像、哪个容器名NAMES、属于哪个用户在运行这个 Python 程序了。

更多文章