【Ubuntu】GPU显存被占用,但显示没有使用GPU的进程

文章目录

  • 一、问题描述
  • 二、解决方案
    • [2.1 寻找问题进程](#2.1 寻找问题进程)
    • [2.2 尝试杀死相关进程](#2.2 尝试杀死相关进程)
    • [2.3 投放核弹,一键全杀](#2.3 投放核弹,一键全杀)
    • [2.4 再次查看GPU使用情况](#2.4 再次查看GPU使用情况)
  • 参考资料

一、问题描述

今天使用服务器的时候发现gpu被占了很多内存,但是使用 nvidia-smi 命令并没有发现占这么多显存的进程,如下图所示:

二、解决方案

2.1 寻找问题进程

使用命令 sudo fuser -v /dev/nvidia* 查看。该命令将GPU设备作为文件,查看最近打开该设备文件的进程号。

在我的服务器上的输出如下所示,为便于阅读,这里我只保留部分输出。

我们可以看到主要使用gpu的进程为lmx用户的进程。

shell 复制代码
                     用户     进程号 权限   命令
/dev/nvidia0:        ollama     1242 F...m ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
                     lmx       322164 F...m pt_data_worker
                     lmx       322188 F...m pt_data_worker
                     lmx       322212 F...m pt_data_worker
                     lmx       322265 F...m pt_data_worker
                     "此处省略部分输出"
                     lmx       1833948 F.... pt_data_worker
                     lmx       1833975 F.... pt_data_worker
                     lmx       1834017 F.... pt_data_worker
                     lmx       1834060 F.... pt_data_worker
                     lmx       1834095 F.... pt_data_worker
/dev/nvidia1:        ollama     1242 F...m ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
                     lmx       322164 F...m pt_data_worker
                     lmx       322188 F...m pt_data_worker
                     lmx       322212 F...m pt_data_worker
                     "此处省略部分输出"
                     lmx       1833975 F...m pt_data_worker
                     lmx       1834017 F...m pt_data_worker
                     lmx       1834060 F...m pt_data_worker
                     lmx       1834095 F...m pt_data_worker
/dev/nvidiactl:      ollama     1242 F.... ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
                     lmx       322164 F...m pt_data_worker
                     lmx       322188 F...m pt_data_worker
                     lmx       322212 F...m pt_data_worker
                     lmx       322265 F...m pt_data_worker
                      "此处省略部分输出"
                     lmx       1833975 F...m pt_data_worker
                     lmx       1834017 F...m pt_data_worker
                     lmx       1834060 F...m pt_data_worker
                     lmx       1834095 F...m pt_data_worker
/dev/nvidia-modeset:  "此处省略部分输出"
/dev/nvidia-uvm:      "此处省略部分输出"

2.2 尝试杀死相关进程

我首先根据 参考资料[2] 中所述一键解决的方法尝试杀死相关进程,但该方法对我无效,使用命令:

shell 复制代码
 sudo fuser -v /dev/nvidia* |awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sh

控制台的输出如下(这里我也只保留了部分输出),我们可以看到操作不被允许,并且进程号只到了120就结束了。(不过看那篇博客,这个方法应该是有用的,你们也可以试试)

shell 复制代码
"此处省略部分输出"

sh: 1: kill: Operation not permitted

sh: 2: kill: Operation not permitted

sh: 3: kill: Operation not permitted

sh: 4: kill: Operation not permitted

sh: 5: kill: Operation not permitted

sh: 6: kill: Operation not permitted

"此处省略部分输出"

sh: 116: kill: Operation not permitted

sh: 117: kill: Operation not permitted

sh: 118: kill: Operation not permitted

sh: 119: kill: Operation not permitted

sh: 120: kill: Operation not permitted

2.3 投放核弹,一键全杀

最后我决定杀死lmx用户下的所有进程,使用命令:

shell 复制代码
sudo kill $(ps -u lmx -o pid= | xargs)

成功解决问题!

2.4 再次查看GPU使用情况

可以看到GPU显存以恢复正常,并且lmx用户下的进程已经全部消失。

shell 复制代码
Thu Feb 20 16:04:22 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.58.02              Driver Version: 555.58.02      CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090        Off |   00000000:01:00.0 Off |                  N/A |
| 50%   45C    P8             15W /  350W |     416MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 3090        Off |   00000000:05:00.0 Off |                  N/A |
| 50%   36C    P8              8W /  350W |      36MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2086      G   /usr/lib/xorg/Xorg                             35MiB |
|    0   N/A  N/A      2925      G   /usr/lib/xorg/Xorg                             55MiB |
|    0   N/A  N/A      3053      G   /usr/bin/gnome-shell                           14MiB |
|    0   N/A  N/A      3677      G   /usr/lib/xorg/Xorg                             35MiB |
|    0   N/A  N/A      4266      G   /usr/libexec/gnome-initial-setup                4MiB |
|    1   N/A  N/A      2086      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A      2925      G   /usr/lib/xorg/Xorg                              4MiB |
|    1   N/A  N/A      3677      G   /usr/lib/xorg/Xorg                              4MiB |
+-----------------------------------------------------------------------------------------+
shell 复制代码
                     用户     进程号 权限   命令
/dev/nvidia0:        ollama     1242 F...m ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
/dev/nvidia1:        ollama     1242 F...m ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
/dev/nvidiactl:      ollama     1242 F.... ollama
                     gdm        2925 F...m Xorg
                     gdm        3053 F...m gnome-shell
                     wrz        3677 F...m Xorg
                     wrz        3882 F...m gnome-shell
                     wrz        4266 F...m gnome-initial-s
/dev/nvidia-modeset: gdm        2925 F.... Xorg
                     gdm        3053 F.... gnome-shell
                     wrz        3677 F.... Xorg
                     wrz        3882 F.... gnome-shell
                     wrz        4266 F.... gnome-initial-s
/dev/nvidia-uvm:     ollama     1242 F.... ollama

参考资料

[1] 记一次捉鬼:显存被占用但是nvidia-smi里看不到进程
[2] 解决gpu没有运行进程,但是显存一直占用的方式

相关推荐
天狼122213 分钟前
第5章-1 优化服务器设置
运维·服务器·adb
傻啦嘿哟1 小时前
Python正则表达式:用“模式密码“解锁复杂字符串
linux·数据库·mysql
浪裡遊3 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
SugarPPig3 小时前
PowerShell 查询及刷新环境变量
服务器
段ヤシ.4 小时前
银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6
linux·centos·银河麒麟·rbenv·ruby2.6.5·rails 5.2.6
深夜情感老师5 小时前
centos离线安装ssh
linux·centos·ssh
我的作业错错错6 小时前
搭建私人网站
服务器·阿里云·私人网站
王景程6 小时前
如何测试短信接口
java·服务器·前端
微网兔子7 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
一眼青苔8 小时前
切割PDF使用python,库PyPDF2
服务器·python·pdf