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

在进行深度学习或其他需要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设备文件。

相关推荐

  1. GPU

    2024-05-10 19:06:08       42 阅读
  2. Linux - 清理僵尸进程

    2024-05-10 19:06:08       60 阅读
  3. 僵尸进程_ZombieProcess

    2024-05-10 19:06:08       41 阅读
  4. 僵尸进程111

    2024-05-10 19:06:08       29 阅读
  5. Pytorch 获取当前模型占用的 GPU的大小

    2024-05-10 19:06:08       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 19:06:08       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 19:06:08       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 19:06:08       87 阅读
  4. Python语言-面向对象

    2024-05-10 19:06:08       96 阅读

热门阅读

  1. python数据处理(pandas)

    2024-05-10 19:06:08       32 阅读
  2. vue3 自定义网站title的hooks

    2024-05-10 19:06:08       30 阅读
  3. React 基础案例

    2024-05-10 19:06:08       32 阅读
  4. DataSnap侦听端口动态设置问题

    2024-05-10 19:06:08       33 阅读
  5. 推荐2024好看的剧

    2024-05-10 19:06:08       39 阅读
  6. 程序链接和运行 - 笔记

    2024-05-10 19:06:08       25 阅读
  7. C++并发:线程函数传参(一)

    2024-05-10 19:06:08       31 阅读
  8. Linux查看Oracle数据库的环境变量

    2024-05-10 19:06:08       38 阅读
  9. python脚本实战

    2024-05-10 19:06:08       30 阅读
  10. MySQL导入导出详细教程

    2024-05-10 19:06:08       27 阅读