【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设备文件。

相关推荐
荔枝吻4 小时前
【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。
nvidia·英伟达
deeper_wind8 小时前
k8s-容器化部署论坛和商城服务(小白的“升级打怪”成长之路)
linux·运维·容器·kubernetes
勇往直前plus9 小时前
VMware centos磁盘容量扩容教程
linux·运维·centos
政安晨10 小时前
Ubuntu 服务器无法 ping 通网站域名的问题解决备忘 ——通常与网络配置有关(DNS解析)
linux·运维·服务器·ubuntu·ping·esp32编译服务器·dns域名解析
路溪非溪11 小时前
嵌入式Linux驱动开发杂项总结
linux·运维·驱动开发
Neolock12 小时前
Linux应急响应一般思路(三)
linux·web安全·应急响应
被遗忘的旋律.13 小时前
Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
linux·驱动开发·笔记
轻松Ai享生活13 小时前
minidump vs core dump
linux
轻松Ai享生活14 小时前
详细的 Linux 常用文件系统介绍
linux
张童瑶14 小时前
Linux 离线安装lrzsz(rz、sz上传下载小插件)
linux·运维·centos