如何查看服务器GPU当前被谁占用,服务器GPU使用情况怎么看

想看服务器GPU当前有谁在用,最快是SSH登录后执行 nvidia-smi,把最下方 Processes 表里的每个 PID 用 ps -o user= -p PID 转成用户名;没有完整权限时,可以让管理员开一个 gpustat 或 nvitop 只读面板,直接看 USER 列。

服务器GPU当前有谁在用?先用一条命令看个大概

在大多数 Linux 服务器上,NVIDIA 驱动自带 nvidia-smi,登录后直接敲:

ubuntu22.04查看显卡使用情况,实时显存显卡使用率?
加载中
ubuntu22.04查看显卡使用情况,实时显存显卡使用率?
nvidia-smi

输出会分上下几块:显卡型号、驱动版本、风扇、温度、功耗、显存和 GPU 利用率。真正回答“有谁在用”的部分,不是顶部的大数字,而是最下方 Processes 表格,这张表会按 GPU 序号列出正在占用显存的进程,包含 PID、类型(C 表示计算,G 表示图形)、进程名和显存占用。

很多运维新手只盯住 GPU 利用率,看到 90% 就以为有人在训练模型,但顶部利用率只是硬件状态,看不到人,真正要查使用者,必须看 PID,以一台 8 卡服务器为例,输出可能长这样:

|   0   N/A  N/A    12345   C   python3   18500MiB |
|   0   N/A  N/A    12367   C   python3   10240MiB |
|   3   N/A  N/A    12400   C   python3   22000MiB |

每个 PID 就是一个进程。PID 对应哪个系统账号,那个账号就是当前占用 GPU 的人,如果同一张卡上出现多个 PID,说明这张卡被多个任务同时分占显存。

用 watch 持续观察谁在上下卡

单次 nvidia-smi 是快照,多人共用时进程会不断变化,建议执行:

watch -n 1 nvidia-smi

每一秒刷新一次,能看到谁刚启动任务、谁释放了显存,按 Ctrl+C 退出,如果只是想观察变化,不要设置太短间隔,0.5 秒刷新一次对 GPU 状态读取影响不大,但人眼也看不过来,还容易漏掉关键变化。

怎么查gpu被谁占用?把PID变成用户名的两条命令

nvidia-smi 有个小坑:它默认不一定显示用户名,多数发行版和驱动版本中,Processes 表只有 PID、类型、进程名和显存,没有 USER 列,这时就需要把 PID 转成系统用户,这就是服务器运维日常常说的“gpu 被谁占用了怎么查”。

ps 单查某个 PID

拿刚才的 12345 举例:

ps -o user= -p 12345

输出会干净地返回一个用户名,wangfei,如果还想在同一行显示完整进程和启动时长,可以执行:

如何查看服务器GPU当前被谁占用,服务器GPU使用情况怎么看

ps -o user,pid,etime,cmd -p 12345

批量把GPU上的PID全部转成用户名

一张卡可能被多个进程同时吃显存,一行一条命令太慢,直接执行:

nvidia-smi --query-compute-apps=pid --format=csv,noheader | xargs -I{} ps -o user= -p {}

如果担心重名,再加个 sort -u 去重:

nvidia-smi --query-compute-apps=pid --format=csv,noheader | xargs -I{} ps -o user= -p {} | sort -u

运行完得到的,就是当前真正占用 GPU 的所有用户名。这是最接近“服务器GPU当前有谁在用”的标准答案

gpustat 一行直接带用户

如果服务器已经装了 gpustat,会更省事,执行:

gpustat -i 1

输出里天然包含 USER 列,显存、利用率、温度都排好,不需要再做 PID 反查。

下面把常用查看方式做一个简单对比:

| 工具 | 是否直接显示用户名 | 适合场景 |
| nvidia-smi | 部分驱动版本不显示 | 基础查卡、看显存 |
| ps -o user= -p PID | 按 PID 单查 | 确认单个进程归属 |
| gpustat | 是 | 快速监控多人共用 |
| nvitop | 是 | 交互式管理、实时排序 |

linux查gpu占用用户时容易忽略的3个细节

容器进程的“真身”不一定是容器内用户

现在相当一部分训练任务跑在 Docker 里,宿主机上看到的 PID 属于容器进程,执行 ps -o user= -p PID 可能返回 root,但容器内实际是某个普通用户,如果直接判断为 root 在跑任务,很容易找错人,更准确的方式是同时看容器名:

ps -o user,pid,cmd -p PID

再结合 docker ps 找对应容器,行业共识认为,共享GPU服务器必须提前规划容器 UID 映射,否则时间一长连管理员都分不清责任进程。

同一块卡上的显示异常

一台机器多张卡时,有时 GPU 0 显存已快满,但 Processes 表里只剩一个 PID,可能是残留进程、僵尸进程,或是驱动层缓存未释放,优先用:

nvidia-smi --query-compute-apps=pid,used_memory --format=csv

确认存在,再去 /proc/PID/status 看进程状态,状态为 Z 的僵尸进程需要管理员清理,普通用户直接杀不掉。

不要频繁全量轮询

一个运维脚本如果每 0.2 秒调用一次 nvidia-smi --query,会消耗可观的 CPU 和 GPU 管理开销,多数情况下 1 秒刷新足够,对于几十卡的集群,建议使用 Prometheus + DCGM exporter 统一采集,而不是每台机器手动敲命令。

如何查看服务器GPU当前被谁占用,服务器GPU使用情况怎么看

服务器GPU多人使用怎么管理?从“看见谁在用”到“管住谁能用”

只靠 nvidia-smi 看谁在用,是事后追责,如果服务器GPU多人使用怎么管理都靠吼,很快会乱套,更合适的做法是给每张卡建立可见性和使用边界。

用 nvitop 做只读监控

nvitop 类似 htop,但面向 GPU,输入:

nvitop

屏幕上每行是一个 GPU 进程,USER、GPU利用率、显存、运行时长、命令行都在,管理者可以直接看到某位同事在 3 号卡跑 PyTorch 训练,这个工具也适合给非管理员开只读权限,不需要 sudo。

设置 CUDA_VISIBLE_DEVICES 限定卡

在启动任务前设置:

CUDA_VISIBLE_DEVICES=2,3 python train.py

这样该任务只能看到物理 2、3 号卡,用户之间不容易互相干扰。如果不设这个环境变量,程序通常默认只用 0 号卡,这也是为什么很多服务器 0 号卡爆满、其余卡空闲

用 Slurm 或 Kubernetes 做排队

超过 6 人共用的 GPU 服务器,最好上调度系统,Slurm 提交任务时指定 --gres=gpu:1,系统自动分配空闲卡;Kubernetes 配合 device plugin 也能按显存配额调度,这样“谁在用”不再靠查命令,而是有任务队列可看,业内专家指出,这种调度方式能显著减少同卡争抢。

GPU服务器租用价格和成都机房:对查看占用有什么影响

如果你用的不是自建服务器,而是租用 GPU 云主机或共享 GPU 资源池,情况会稍有不同。GPU服务器租用价格按卡时或包月结算时,很多平台会提供控制台页面直接显示GPU当前有谁在用,不需要你 SSH 登录敲 nvidia-smi,但共享型资源池一般不会给你完整驱动权限,只能看到自己任务的占用。

成都GPU服务器共享环境怎么查占用

以成都GPU服务器为例,部分西南机房会提供 web 监控面板,登录后能看到集群卡型、显存占用和账号任务,如果你通过 SSH 登录宿主机发现 nvidia-smi 被限制,只能返回自己的进程,这可能是平台用 cgroups 或 MIG 做了隔离,此时不要反复提权查看别人的任务,直接看控制台配额和账单更合适。

价格计费下更需要会看占用

按量付费的 GPU 资源,任务跑完如果显存不释放,钱包会一直扣费。

如何查看服务器GPU当前被谁占用,服务器GPU使用情况怎么看

学会在租用机器上执行 nvidia-smi 确认进程退出、显存归零,再关机或释放实例,本身就是一个省钱动作,不同地域的 GPU 租用价格差异较大,西部机房常以托管成本优势参与竞争,但查看占用的命令全国通用,不会因为你在成都或上海而有本质区别。

快速落地:一套检查流程

到一台共享 GPU 服务器上,想快速知道当前谁在用,按下面顺序做:

  • 登录后执行 nvidia-smi
  • 看最下方 Processes 表,记录所有 PID
  • 执行 nvidia-smi --query-compute-apps=pid --format=csv,noheader | xargs -I{} ps -o user= -p {} | sort -u
  • 得到当前占用 GPU 的用户列表
  • 如果发现某卡显存占满但 PID 很短,可能是容器或异常进程
  • 需要持续观察就执行 watch -n 1 nvidia-smigpustat -i 1

服务器 GPU 当前有谁在用,核心不是看利用率,而是看进程 PID 和对应的系统用户。nvidia-smi 提供 PID,ps -o user= -p PID 提供人名,gpustatnvitop 把这两步合成一行,对于多人共用、容器任务和租用资源池,还需要结合容器映射、调度系统和控制台面板,才能准确判断每一张卡的当前主人。

Q&A:服务器GPU当前有谁在用的几个常见问题

服务器GPU当前有谁在用,最简单的一条命令是什么?

登录后在终端执行 nvidia-smi,查看最下方 Processes 表的 PID;然后执行 ps -o user= -p PID 得到用户名,若想一步到位,使用 gpustat -i 1 可直接看到 USER 列。

nvidia-smi不显示用户名怎么办?

默认很多驱动版本的 nvidia-smi 进程表不显示 USER 列,可以执行 nvidia-smi --query-compute-apps=pid --format=csv,noheader | xargs -I{} ps -o user= -p {},用 PID 反查用户名,容器任务可能会出现 root,需要结合 docker ps 和容器 UID 映射判断。

多人共用GPU服务器怎么防止别人占满显存?

不要直接依赖口头协商,启动任务前设置 CUDA_VISIBLE_DEVICES 限定物理卡,CUDA_VISIBLE_DEVICES=0 python train.py;对超过 6 人的团队,使用 Slurm 或 Kubernetes 做 GPU 排队和配额;日常用 nvitop 查看空闲卡和占用用户,避免同时抢一张卡。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/642701.html

(0)
贝腾服务器一个要多少钱,租用一个月需要多少钱?
上一篇 2026年9月11日 13:42
下一篇 2026年8月9日 05:21

相关推荐

  • ASP.NET动态查询条件如何实现?高效筛选数据实战解析,(注,严格遵循要求,仅提供符合SEO策略的双标题,1. 字数在20-30字之间;2. 融合长尾疑问关键词与核心大流量词;3. 未包含任何解释说明。)

    实现ASP.NET网页中的动态查询条件,核心在于灵活构建查询表达式、安全处理用户输入并提供流畅的用户体验,关键在于利用IQueryable的延迟执行特性、表达式树(Expression Trees)以及前端与后端的协同设计,以下是专业且高效的实现方案:核心原理:表达式树与延迟查询ASP.NET Core (En……

    2026年2月8日
    14130
  • AI养羊解决方案怎么样,AI智能养羊真的赚钱吗?

    在现代化农业转型的浪潮中,智能化养殖已不再是可选项,而是行业生存与发展的必经之路,通过深度整合物联网、大数据与计算机视觉技术,AI养羊解决方案秒杀传统粗放式管理模式,其核心在于将养殖全流程数字化、精准化,这一方案能够将养殖综合成本降低20%至30%,同时将羊只存活率提升至98%以上,彻底解决了传统养殖中人力成本……

    2026年2月22日
    13600
  • Excel到底能做什么?Excel常用功能与技巧有哪些

    Excel本质上是一款由微软开发的功能强大的电子表格软件,它通过网格化的数据管理、复杂的公式计算以及可视化的图表分析,帮助用户高效处理从日常记账到企业级数据分析的各类任务,很多人对Excel的印象还停留在“做表格”或“算工资”的初级阶段,但实际上,它已经演变成了一种通用的数据处理语言,无论是财务人员的报表制作……

    2026年7月4日
    4300
  • aix监控命令有哪些,aix系统监控命令大全

    AIX系统的稳定运行依赖于对核心资源的精准把控,高效监控是预防系统宕机、保障业务连续性的关键手段,核心结论在于:AIX监控不应局限于单一指标的查看,而应建立以CPU、内存、I/O、磁盘空间及进程状态为维度的立体化监控体系,通过原生命令组合与阈值设定,实现从“事后排查”向“事前预警”的转变,掌握核心监控命令的组合……

    2026年3月14日
    15100
  • cf电脑版总是连接不上服务器失败怎么办,是什么原因

    CF电脑版总是连接不上服务器失败,通常是因为本地网络波动、防火墙拦截、游戏文件出错或官方服务器临时维护,按顺序检查网络连接、关闭冲突软件、修复游戏资源即可解决,很多玩家在团战关键时刻或排位赛结算时被踢出房间,提示“连接服务器失败”或“登录超时”,这种情况并非只有你遇到,多数情况下问题出在本地环境或网络通道上,下……

    2026年8月11日
    1700
  • 为什么英雄联盟被盗第二天服务器会崩,怎么办?

    如果你的LOL账号被盗,第二天又遇到服务器崩溃,别慌,先锁定账号,再通过官方渠道申诉,同时关注服务器状态公告,这是最稳妥的应对方案,LOL被盗第二天服务器崩了,紧急处理步骤如何确认账号确实被盗了登录记录异常:检查官网或掌上英雄联盟的最近登录记录,出现陌生地点或设备,好友列表被删或新增陌生好友,聊天记录出现异常信……

    2026年8月3日
    2500
  • 如何判断服务器在线状态,服务器在线却无法访问怎么办?

    服务器在线状态监控与高可用维护指南在数字化运营中,服务器在线率(Uptime)是衡量服务质量的核心指标,确保服务器持续稳定在线,不仅能提升用户体验,还能避免因宕机带来的经济损失, 服务器在线状态的核心指标要定义“在线”,不能仅凭能否 Ping 通,需要关注以下关键维度:可用性 (Availability):服务……

    2026年7月14日
    600
  • ftp服务器和ftp主机有啥区别?ftp服务器搭建教程

    “FTP服务器”和“FTP主机”这两个词在日常口语中经常被混用,但在技术语境下,它们指代的侧重点有所不同,FTP服务器是一种软件或服务,而FTP主机通常指运行该服务的硬件设备或网络节点,以下是详细的区别解析:定义不同FTP服务器 (FTP Server)本质:指软件程序或服务进程,功能:它是遵循FTP(文件传输……

    2026年7月11日
    8900
  • 在aspx当前上下文中,如何准确识别和操作页面元素?

    在 ASP.NET Web Forms 应用程序中,HttpContext.Current 是访问当前 HTTP 请求上下文信息的核心入口点,这个对象是一个静态属性,它提供了对当前执行请求的 HttpContext 实例的访问,HttpContext 本身是一个功能丰富的容器,封装了与单个 HTTP 请求/响应……

    2026年2月4日
    11300
  • 广州轻量应用服务器镜像类型有哪些?广州轻量服务器选什么镜像好

    2026年广州轻量应用服务器镜像类型的最优选择,是基于业务场景精准匹配操作系统与预装环境,以“系统镜像保灵活、应用镜像提效率、自定义镜像控规模”为核心策略的组合方案,2026年广州轻量应用服务器镜像全景解析镜像的核心分类与底层逻辑轻量应用服务器的镜像本质上是系统盘的克隆模板,决定了实例的运行环境与初始状态,根据……

    2026年4月26日
    6200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注