MLNLP 发布 GPUWatchdog:在集群里自动帮你看显卡的小助手

本文介绍了 MLNLP 社区开源的小工具 GPU Watchdog,旨在解决共享集群环境下 GPU 资源管理和监控的痛点。该工具能够周期性收集 GPU 进程信息,根据预设规则(如占用 GPU 数量超限、进程运行时间过长)判断是否需要告警,并通过邮件发送结构化的告警通知,包含详细的 GPU 进程列表。文章详细阐述了 GPU Watchdog 的主要功能、三层架构设计(信息采集、规则判断、通知与去重),并提供了简单的三步上手指南。它适用于实验室、课程组、小型集群管理员等共享 GPU 资源的用户,帮助提升资源管理效率,降低沟通成本。该工具由康奈尔大学博士后陈昱妍开发,强调其轻量化和易用性,旨在解决 80% 的日常监控需求。




MLNLP 2026-01-13 00:02 吉林

MLNLP 发布 GPUWatchdog:在集群里自动帮你看显卡的小助手

推荐

图片

MLNLP社区是国内外知名自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步。

这次想和大家分享一个在共享集群场景下非常实用的小工具:GPU Watchdog —— 在集群里帮你盯显卡的小助手。它的定位很简单:在你忙着写代码、改实验的时候,悄悄替你看着 GPU 使用情况,有异常就第一时间叫你。

很多人在学校或公司里用过类似的共享服务器,应该都有类似经历:自己辛苦排队上了卡,结果同机有人把 GPU 全占了,训练速度突然变慢甚至直接 OOM;想知道现在这块卡是谁在用这个进程到底跑了多久,只能反复手动敲 nvidia-smi;或者某个实验跑了一整夜,第二天才发现其实两个进程互抢资源、浪费了大半个晚上。

大家真正想要的,其实是这么一件小事:一旦 GPU 使用异常或者某个进程跑太久,可以自动发一封结构化的邮件提醒,而不是纯靠人肉盯终端。GPU Watchdog 做的事就是这件小事。

它会周期性收集集群节点的 GPU 进程信息,包括 GPU 编号、PID、运行时间、启动命令等;根据你设定的规则判断是否需要告警,比如占用 GPU 数量超过上限或者某个进程连续运行超过阈值;一旦触发,就通过 Gmail API 或 SMTP 发出告警邮件,并附上完整的 GPU 进程列表,方便你在手机或电脑上快速排查。

你可以把它理解成:挂在集群上的一个小助手,帮你在后台默默盯着显卡情况,有事就叫你,没事就安静待着。

图片

1:终端中展示 GPU Watchdog 整理后的 GPU 进程视图

图片

图 2:GPU Watchdog 发送的告警邮件示例

1

GPU Watchdog 具体能帮你做什么?

从使用者视角,GPU Watchdog 主要解决三类问题。

第一类是资源被悄悄占用的问题。它会统计当前被占用的 GPU 数量,比如你在配置里写了超过 2 块 GPU 就提醒,那当某台机器上出现 3 块及以上 GPU 被进程占用时,就会触发告警,让你意识到这台机器现在有点挤了。对很多实验室和小团队来说,这比事后追查到底是谁抢了谁的卡要友好得多。

第二类是进程跑太久没人管的问题。比如某个进程已经挂在那儿跑了一天一夜,你可能早就忘了它,或者只是忘记关掉调试用的长跑脚本。GPU Watchdog 会定期检查每个进程的运行时间,找出其中最长的那一个,与配置中的阈值进行对比,例如 6 小时、12 小时等。一旦超过,就发邮件提醒你:“这台机器上有一个进程跑得非常久,要不要看一眼?”

第三类是信息分散的问题。默认的 nvidia-smi 输出虽然信息很全,但在多人共用的环境里,一长串进程列表往往看得人眼花缭乱。GPU Watchdog 会把每个进程整理成一行,包含 GPU 编号、PID、运行时间、程序路径和完整命令行等,并在告警邮件里原样附上,这样你在邮箱里就能一眼看清是谁在用哪块卡、跑了多久、跑的是什么命令。

我们希望,它能帮你做到两件事:省心和稳定。省心,是不用一直盯着终端看卡,有异常自然会被提醒;稳定,是在问题刚刚出现时就知道,而不是实验全部失败后再事后复盘。

2

底层是怎么设计的?

为了方便在不同实验室和公司环境里部署,GPU Watchdog 做了刻意的工程瘦身。一方面尽量减小依赖,另一方面又要让结构足够清晰、容易扩展。大致可以拆成三层:

第一层是信息采集层。这里有一个小脚本封装了 nvidia-smi,按进程为单位输出信息,每个进程一行,包括 GPU 编号、PID、运行时间(比如 0:23:15、1-02:10:05 这种格式)、程序路径和完整启动命令。对于既有运维工具不完善的环境,仅靠这一层本身就已经比手动看 nvidia-smi 舒服很多。

第二层是规则判断层。GPU Watchdog 会读取配好的环境变量和配置文件,计算出当前被占用的 GPU 总数量、单个进程的最大运行时长等指标,再和规则做对比。以一个典型的配置为例:你可以写超过 2 块 GPU 提醒我和单个进程超过 6 小时提醒我。在执行时,它会先判断 GPU 数量是否超过上限,再判断是否存在长跑进程,只要满足其中任意一条,就触发告警。

第三层是通知和去重层。告警邮件可以通过 Gmail API 发送,也可以使用传统 SMTP。为了避免刷屏,GPU Watchdog 会基于触发原因和当前 GPU 进程快照生成一个签名,在设定的冷却时间内,如果签名相同,就不会重复发同一类告警。比如同一台机器上出现3 块 GPU 被占用的问题,只会在第一次发生时提醒一次,而不是每次轮询都给你发一封。

整体而言,这个工具不是为了替代完整的监控平台,而是为实验室 或者小团队提供一个足够轻量、能解决 80% 痛点的方案。具体的配置细节和所有参数说明,都写在 GitHub 仓库的 README 里,喜欢折腾的同学可以直接在 shell 脚本里继续扩展更多规则。

图片

图 3:GPU Watchdog 三层结构示意图

3

三步上手:让显卡小狗在你的集群里跑起来

如果你已经有一台可以跑 nvidia-smi 的机器,上手过程可以非常简单,用不到几行命令就能让显卡小狗开始工作。这里用最常见的 Linux 服务器或实验室集群作为例子。

第一步:克隆项目。

在集群或服务器上执行:          

git clone https://github.com/MLNLP-World/gpu-watchdog.git          
cd gpu-watchdog

第二步:按模板复制配置文件。

项目里已经准备好了示例配置,你只需要复制一份出来修改:          

cp config/gpu-watch.env.example config/gpu-watch.env          
cp config/notify.env.example config/notify.env

在这一阶段,你可以简单地改几项最关键的内容,比如把告警收件人邮箱改成自己的,把“超过几块 GPU 认为是太多”“单个进程跑多久算太久”这些阈值改成符合你团队习惯的数值即可。更详细的字段解释和可选项,可以直接在 GitHub 的 README中查看。

图片

图 4 :gpu-watch.env 示例配置片段

图片

图 5:notify.env 示例配置片段

第三步:试跑并正式启用。

正式跑之前,建议先来一次演练,只看它准备用什么邮件内容,不真正发送:          

bash bin/gpu_watch.sh --dry-run

确认格式和内容都正常后,可以再发一封测试邮件,确保整个邮件链路畅通:          

bash bin/gpu_watch.sh --test-mail

如果能在邮箱里收到测试邮件,说明看卡和发信这条链路已经打通。接下来,只需要让它周期性运行就可以了:可以在 tmux 里写一个简单的循环,每隔几分钟执行一次脚本;也可以用 crontab 每 5 分钟或 10 分钟执行一次。具体怎么调度,完全可以按你们实验室或团队内部的习惯来。

图片

图 6:通过定时任务触发后的 GPU Watchdog 日志示例

4

适合谁用?

GPU Watchdog 一开始就是为共享集群场景设计的,因此天然适合以下几类用户。

在实验室或公司里一起共用几台 GPU 服务器的同学。对于经常要排队用卡的研究人员来说,这类工具可以帮助大家更透明地了解资源使用情况,降低抢卡带来的情绪和沟通成本。

需要给学生统一提供算力的老师、课程组、项目组。课程或项目往往短时间内会有大量同学提交作业或实验,集群压力会突然增大。GPU Watchdog 可以作为一个轻量版监控,帮老师和助教更快发现异常使用模式。

管理小型集群的运维同学,希望有一个简单的早期预警。对很多公司或研究团队来说,没必要一开始就搭一个庞大的监控系统,但也不希望完全处于有问题靠用户报的状态,这时候一只会看 GPU 和进程的显卡小狗,刚好能填补这块空白。

如果你符合下面几个特点:经常要排队用卡、机器被莫名其妙跑满过、偶尔会忘记自己有个进程已经跑了一整天,那 GPU Watchdog 大概率能帮你省下不少心力。

5

开发者信息

GPU Watchdog 由陈昱妍博士(https://yukyin.github.io)开发。她在复旦大学获得计算机博士学位,目前在美国康奈尔计算生物实验室从事 AI4Health 与大模型方向的博士后研究,长期专注于自然语言处理、多模态学习与大模型训练优化,在 ACL、ICCV、AAAI、TKDE 等国际顶级会议和期刊上发表多篇论文,并主导多个开源项目。欢迎大家 star 代码仓库、创建 Issue、分享使用反馈或贡献改进,一起把这只显卡小狗养得更聪明、更稳健。

6

代码库⼆维码

图片

欢迎感兴趣的同学和老师关注 MLNLP,后续我们也会持续分享更多好用但往往被忽视的小工具、平台实践和工程经验。

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。

社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。

图片

阅读原文

跳转微信打开


AI 前线

New biddable capabilities for live sports with Display & Video 360

2026-1-13 12:15:20

AI 前线

LLM 评估指南

2026-1-13 12:15:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索