首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >跑模型被挤了?立即查看服务器GPU/CPU占用,别再误杀他人进程!

跑模型被挤了?立即查看服务器GPU/CPU占用,别再误杀他人进程!

原创
作者头像
程序元元
发布2025-06-26 10:32:05
发布2025-06-26 10:32:05
6560
举报
文章被收录于专栏:思维思维

昨天晚上跑的模型今天来一看别别人kill了 心累

更让人郁闷的是,你后来才发现,原来有些人根本不会先看服务器是不是空着。

但抱怨归抱怨,作为一名有素质的“共享玩家”,学会在自己跑模型前,先看看服务器上有没有别人在跑,以及如何友好地处理资源冲突,这应该是所有人应该最先学习的!

【重要忠告⚠️】核心原则:千万不要直接 Kill 别人的进程!这是共享服务器的基本素养,请务必牢记。

那到底该怎么看服务器的资源占用情况呢?别急,教程这就奉上!

核心教程:如何查看服务器资源占用情况?

无论是 CPU 还是 GPU,我们都有对应的查看工具和命令。

1. CPU 占用情况:**top** 命令

如果你想看服务器上 CPU 的使用情况,top 命令绝对是你的首选,它就像 Linux 里的“任务管理器”,能实时动态显示系统进程。

  • 怎么看?
    • 直接在命令行输入 top,回车。
    • 看 CPU 整体利用率: 顶部 Cpu(s) 那一行,us(用户空间)、sy(内核空间)的百分比越高,说明 CPU 越忙。
    • 看负载: 顶部 load average 后面的三个数字,分别代表过去 1、5、15 分钟的系统平均负载。这个数值通常不应该超过 CPU 核心数,高了就说明系统很忙。
    • 看哪个进程在用: 往下看,%CPU 列就是每个进程占用的 CPU 百分比,USER 列是哪个用户在跑这个进程。

通过 top,你就能知道服务器的 CPU 是不是“满载”了,有没有人在上面跑着特别耗 CPU 的程序。

2. GPU 占用情况:**nvidia-smi** 系列,AIer的“救命稻草”

对于搞深度学习的我们,GPU 才是真正的命根子。NVIDIA 提供了一套强大的工具来监控 GPU。

  • nvidia-smi (系统自带,基本款):
  • 直接输入 nvidia-smi 回车。
  • 它会显示所有 GPU 的基本信息:型号、驱动版本、CUDA 版本、显存使用率 (Memory-Usage)GPU 利用率 (GPU-Util)
  • 你可以一目了然地看到每张显卡“累不累”、“还剩多少空间”。
  • gpustat (简化版,更清晰):
  • 如果 nvidia-smi 的输出觉得有点复杂,可以试试 gpustat。它能给出更简洁、更友好的 GPU 运行概览。
  • 如果提示没有这个应用: pip install gpustat (确保在你的Python环境中安装)。
  • nvitop (实时查看进程,强烈推荐!):
  • 这个工具就像 GPU 界的 top 命令,能实时显示每个 GPU 上正在运行的进程,以及这些进程属于哪个用户、占用了多少显存和利用率。谁在用你的卡,一目了然!
  • 如果提示没有这个应用: pip install nvitop (同样确保在你的Python环境中安装)。

通过这些命令,你就能精准地知道,服务器上的 GPU 是不是被占用了,以及具体是哪个用户在占用。

3. 查看其他用户的进程:**ps -aux | grep [其他用户的名字]**

当你通过 topnvitop 发现某个用户正在占用资源,但想了解更详细的信息时,可以用这个命令:

代码语言:bash
复制
ps -aux | grep [其他用户的名字]
  • [其他用户的名字] 替换成你想查看的用户名(比如 ps -aux | grep userA)。
  • 这个命令会列出该用户在服务器上运行的所有进程,包括进程ID (PID)、CPU/内存占用等。这样你就能知道对方在跑什么程序了。
4. 【进阶版】可视化监控与集群管理工具
  • 如果你权限够高/有条件:DCGM-Exporter + Prometheus/Alertmanager
  • 如果你所在的团队有更专业的服务器管理需求,可以考虑部署 DCGM-Exporter。它能配合 Prometheus 和 Alertmanager,搭建一套完整的可视化监控系统
  • 这样你不仅能通过网页直观地看到所有 GPU 的实时状态,还能设置卡空闲/高负载告警,再也不用手动去查了!当然,这套系统需要连接互联网和一些运维知识去部署。
  • 如果你用的服务器是集群/有资源管理工具:问问管理员!
  • 如果你们的服务器是由很多 GPU 组成的阵列(比如学校或实验室的大型集群),那很可能它们是通过 Slurm、PBS 等资源分配管理工具来统一调度任务的。
  • 这种情况下,你直接用 squeue (Slurm) 或其他对应命令,就能清晰地查看目前所有提交的任务情况,包括占用了多少 CPU、GPU、内存。
  • 【作者建议💡】 我的建议是,直接去问管理这台共享服务器的负责人或团队成员,他们有没有推荐的、已经安装好的资源检查工具或管理命令。这是最直接、最准确,也最省事的方法!因为不同服务器可能安装的工具不一样,系统自带的检查工具也可能不同。

【终极忠告】千!万!不!要!直!接!Kill!别人的进程!

再强调一遍,这是程序员共享服务器的“黄金法则”:

  • 绝不能直接 Kill: 别人的模型可能跑了几天几夜,一 Kill 就前功尽弃了。这不仅是不礼貌,更是可能引发矛盾的“雷区”。我会想kill你的
  • 正确姿势:
    1. 先用上面学到的命令,先看清楚情况。
    2. 如果确实需要资源,并且对方占用时间过长或资源浪费,请礼貌地联系使用者协商,问问他大概什么时候能结束。
    3. 如果联系不上,或者情况特别紧急,再考虑联系服务器管理员,让他们来处理。

一点额外的小建议

除了这些命令行工具,如果你用的是带图形界面的服务器(比如通过 Xterminal 连接),通常也会有一些可视化的 CPU/GPU 状态监控工具,操作起来更直观,也可以去探索一下。

最后,我想说句心里话:强烈建议所有从事编程的朋友,尤其是搞 AI 的,一定要学好 Linux! 服务器环境、各种工具、日常操作,都离不开 Linux。学好它,很多服务器上的疑难杂症都能迎刃而解,你的编程之路会顺畅很多,少踩很多坑!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心教程:如何查看服务器资源占用情况?
    • 1. CPU 占用情况:**top** 命令
    • 2. GPU 占用情况:**nvidia-smi** 系列,AIer的“救命稻草”
    • 3. 查看其他用户的进程:**ps -aux | grep [其他用户的名字]**
    • 4. 【进阶版】可视化监控与集群管理工具
  • 【终极忠告】千!万!不!要!直!接!Kill!别人的进程!
  • 一点额外的小建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档