【bug记录】清除僵尸进程,释放GPU显存

目录

  • [1. 为什么会出现这种情况?](#1. 为什么会出现这种情况?)
  • [2. 解决方案](#2. 解决方案)
    • [方法一:使用 fuser 命令](#方法一:使用 fuser 命令)
    • 方法二:
  • [3. 小贴士](#3. 小贴士)

在进行深度学习或其他需要GPU支持的任务时,我们有时会发现虽然没有可见的进程在执行,但GPU资源却意外地被占用。这种情况往往会阻碍我们的工作进度,因为新的任务无法启动。如果你遇到了这种状况,不要担心,这里有一些方法可以帮助你解决这个问题。


1. 为什么会出现这种情况?

这种情况通常是由于所谓的"僵尸进程"引起的。僵尸进程是指那些已经完成任务但没有正确关闭的进程,它们可能因为各种原因未能释放占用的GPU资源。这会导致资源浪费,并且阻碍其他任务的执行。

2. 解决方案

虽然重启服务器是一种直观的解决方案,但大多数情况下,我们无法因为权限不足而执行此操作。因此,我们需要寻找其他方法来解决这个问题。

方法一:使用 fuser 命令

  1. 打开你的终端。

  2. 输入命令 fuser -v /dev/nvidia* 查看当前占用GPU资源的进程。

  3. 一旦找到这些进程,你可以使用 kill 命令来终止它们。例如,如图,我的进程号是94285,你可以执行 kill -9 94285 来强制终止它。

通过这种方式,你可以释放被僵尸进程占用的GPU资源,恢复系统的正常运行。

方法二:

reboot大法

3. 小贴士

  1. 在执行这些操作之前,请确保你有足够的权限来终止这些进程,并且要小心不要终止那些重要的系统进程。此外,保持定期检查系统状态的习惯,可以帮助你避免资源被长时间占用的情况。
  2. fuser 是一个强大的Unix和类Unix系统命令行工具,它用于显示哪些用户和进程正在使用特定的文件、套接字或文件系统。在我们的场景中,fuser 可以帮助我们找出哪些进程正在使用特定的GPU设备文件。

相关推荐
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根4 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
小玮看世界5 小时前
【Bug 报告】腾讯元宝 Windows 客户端 v2.88.1 新建对话卡死、界面残留与输入框乱码
bug
倒头就睡的小比特6 小时前
Linux基础指令3
linux·服务器
梦帮科技6 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码7 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海7 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
龙虾电话7 小时前
语音机器人打断不进去:VAD 双阈值迟滞里一个共用的 bool,和它引发的连锁误判
linux
honsor7 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
默|笙8 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp