【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没有运行进程,但是显存一直占用的方式

相关推荐
xywww1681 小时前
开发团队接入 Opus 5 / Sonnet 5:模型路由、升级阈值和成本账怎么算
服务器·网络·p2p
爱写代码的森1 小时前
鸿蒙三方库 | harmony-utils之EncryptUtil URL编解码详解
服务器·华为·harmonyos·鸿蒙·huawei
风曦Kisaki1 小时前
Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
linux·运维·笔记·docker·云原生·容器·kubernetes
千维百策6661 小时前
如何管理错误预算:提升服务可靠性与 SLO 达成率的实践经验
服务器·网络·数据库
图件制作GIS,储量计算1 小时前
未来已到,抓住机遇
运维·服务器
xuhe21 小时前
一劳永逸!解决 AutoDL 系统盘(30GB)爆满与 pip 缓存迁移
linux·python·ai·jupyter
学无止境_永不停歇2 小时前
9. 缓冲区
linux·服务器·c++
dok122 小时前
Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》(4) devicefile 设备号相关
linux·运维·服务器
毛驴赶鹿2 小时前
低配置服务器怎么搭建监控?Komari Docker部署与公网访问完整教程
运维·服务器·docker
Fu2067213 小时前
结课项目考试
linux·运维·服务器