当前位置: 首页 > news >正文

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

文章目录

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

一、问题描述

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

二、解决方案

2.1 寻找问题进程

使用命令 sudo fuser -v /dev/nvidia* 查看。该命令将GPU设备作为文件,查看最近打开该设备文件的进程号。
在我的服务器上的输出如下所示,为便于阅读,这里我只保留部分输出。
我们可以看到主要使用gpu的进程为lmx用户的进程。

                     用户     进程号 权限   命令
/dev/nvidia0:        ollama     1242 F...m ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-slmx       322164 F...m pt_data_workerlmx       322188 F...m pt_data_workerlmx       322212 F...m pt_data_workerlmx       322265 F...m pt_data_worker"此处省略部分输出"lmx       1833948 F.... pt_data_workerlmx       1833975 F.... pt_data_workerlmx       1834017 F.... pt_data_workerlmx       1834060 F.... pt_data_workerlmx       1834095 F.... pt_data_worker
/dev/nvidia1:        ollama     1242 F...m ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-slmx       322164 F...m pt_data_workerlmx       322188 F...m pt_data_workerlmx       322212 F...m pt_data_worker"此处省略部分输出"lmx       1833975 F...m pt_data_workerlmx       1834017 F...m pt_data_workerlmx       1834060 F...m pt_data_workerlmx       1834095 F...m pt_data_worker
/dev/nvidiactl:      ollama     1242 F.... ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-slmx       322164 F...m pt_data_workerlmx       322188 F...m pt_data_workerlmx       322212 F...m pt_data_workerlmx       322265 F...m pt_data_worker"此处省略部分输出"lmx       1833975 F...m pt_data_workerlmx       1834017 F...m pt_data_workerlmx       1834060 F...m pt_data_workerlmx       1834095 F...m pt_data_worker
/dev/nvidia-modeset:  "此处省略部分输出"
/dev/nvidia-uvm:      "此处省略部分输出"

2.2 尝试杀死相关进程

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

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

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

"此处省略部分输出"sh: 1: kill: Operation not permittedsh: 2: kill: Operation not permittedsh: 3: kill: Operation not permittedsh: 4: kill: Operation not permittedsh: 5: kill: Operation not permittedsh: 6: kill: Operation not permitted"此处省略部分输出"sh: 116: kill: Operation not permittedsh: 117: kill: Operation not permittedsh: 118: kill: Operation not permittedsh: 119: kill: Operation not permittedsh: 120: kill: Operation not permitted

2.3 投放核弹,一键全杀

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

sudo kill $(ps -u lmx -o pid= | xargs)

成功解决问题!

2.4 再次查看GPU使用情况

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

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 |
+-----------------------------------------------------------------------------------------+
                     用户     进程号 权限   命令
/dev/nvidia0:        ollama     1242 F...m ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-s
/dev/nvidia1:        ollama     1242 F...m ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-s
/dev/nvidiactl:      ollama     1242 F.... ollamagdm        2925 F...m Xorggdm        3053 F...m gnome-shellwrz        3677 F...m Xorgwrz        3882 F...m gnome-shellwrz        4266 F...m gnome-initial-s
/dev/nvidia-modeset: gdm        2925 F.... Xorggdm        3053 F.... gnome-shellwrz        3677 F.... Xorgwrz        3882 F.... gnome-shellwrz        4266 F.... gnome-initial-s
/dev/nvidia-uvm:     ollama     1242 F.... ollama

参考资料

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

相关文章:

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

文章目录 一、问题描述二、解决方案2.1 寻找问题进程2.2 尝试杀死相关进程2.3 投放核弹&#xff0c;一键全杀2.4 再次查看GPU使用情况 参考资料 一、问题描述 今天使用服务器的时候发现gpu被占了很多内存&#xff0c;但是使用 nvidia-smi 命令并没有发现占这么多显存的进程&am…...

【并发编程】Java并发编程核心包

1、简介 java.util.concurrent 是 Java 并发编程的核心包&#xff0c;提供了丰富的工具和框架来支持多线程编程、并发任务执行、线程安全集合、同步机制等。 2、线程池Thread Pool 线程池是并发编程中最重要的工具之一&#xff0c;用于管理和复用线程&#xff0c;避免频繁创…...

Unity 淡入淡出

淡入&#xff08;Fade in&#xff09;&#xff1a;类似打开幕布 淡出&#xff08;Fade out&#xff09;&#xff1a;类似关上幕布 方案一 使用Dotween&#xff08;推荐&#xff09; using DG.Tweening; using UnityEngine; using UnityEngine.UI;public class Test : MonoB…...

完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练

完整的 LoRA 模型训练步骤&#xff1a;如何使用 Kohya_ss 进行 LoRA 训练 一、环境配置1. 安装 Python 和虚拟环境2. 克隆 Kohya_ss 仓库3. 安装依赖4. 启动 GUI lora训练1. 准备数据 图片处理打标签2. 配置 LoRA 训练2.2 配置图片文件夹和输出目录 训练解决方法&#xff1a; 使…...

视觉分析之边缘检测算法

9.1 Roberts算子 Roberts算子又称为交叉微分算法&#xff0c;是基于交叉差分的梯度算法&#xff0c;通过局部差分计算检测边缘线条。 常用来处理具有陡峭的低噪声图像&#xff0c;当图像边缘接近于正45度或负45度时&#xff0c;该算法处理效果更理想。 其缺点是对边缘的定位…...

git输错用户名或者密码

git push时候跳出window弹窗&#xff0c;输入用户名和密码&#xff0c;如果错误&#xff0c;会有如下情况&#xff1a; $ git push -u origin “master” remote: [session-6c466aa6] rain: Incorrect username or password (access token) fatal: Authentication failed for ‘…...

【Unity Shader编程】之图元装配与光栅化

执行方式&#xff1a;自动完成 图元装配自动化流程 顶点坐标存入装配区 → 按绘制模式连接顶点 → 生成完整几何图元 示例&#xff1a;gl.drawArrays(gl.TRIANGLES, 0, 3)自动生成三角形 会自动自动裁剪超出屏幕范围&#xff08;NDC空间外&#xff09;的三角形&#xff0c;仅保…...

以ChatGPT为例解析大模型背后的技术

目录 1、大模型分类 2、为什么自然语言处理可计算&#xff1f; 2.1、One-hot分类编码&#xff08;传统词表示方法&#xff09; 2.2、词向量 3、Transformer架构 3.1、何为注意力机制&#xff1f; 3.2、注意力机制在 Transformer 模型中有何意义&#xff1f; 3.3、位置编…...

网页版的俄罗斯方块

1、新建一个txt文件 2、打开后将代码复制进去保存 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>俄…...

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境 Dockerfile 是一个文本文件, 包含了构建 Docker 镜像的所有指令。 Dockerfile 是一个用来构建镜像的文本文件, 文本内容包含了一条条构建镜像所需的指令和说明。 通过定义一系列命令和参数, Dockerfile 指导 Docker 构…...

数据中心储能蓄电池状态监测管理系统 组成架构介绍

安科瑞刘鸿鹏 摘要 随着数据中心对供电可靠性要求的提高&#xff0c;蓄电池储能系统成为关键的后备电源。本文探讨了蓄电池监测系统在数据中心储能系统中的重要性&#xff0c;分析了ABAT系列蓄电池在线监测系统的功能、技术特点及其应用优势。通过蓄电池监测系统的实施&#…...

layui.table.exportFile 导出数据并清除单元格中的空格

Layui在执行数据导出的时候&#xff0c;会出现部分数据单元格中有空格的情况,下面的方法可以去除掉单元格中的空格,供大家参考&#xff01;&#xff01; function table_export(id,title) {//根据传入tableID获取表头var headers $("div[lay-id" id "] .layu…...

vue-指令

前端开发Vue的指令 Vue.js 提供了丰富的指令系统&#xff0c;用于扩展HTML的功能和行为。这些指令可以分为内置指令和自定义指令两大类。以下是对Vue.js中常见指令的详细解释和示例&#xff1a; 1. 内置指令 1.1 插值表达式 用法&#xff1a;{{ expression }}示例&#xff…...

跟着李沐老师学习深度学习(十三)

现代循环神经网络 循环神经网络中梯度异常在实践中的意义引发了一些问题&#xff1a; 早期观测值影响重大&#xff1a;早期观测值对预测所有未来观测值极为重要&#xff0c;如序列中第一个观测值包含校验和&#xff0c;需在序列末尾辨别其是否正确&#xff0c;若无特殊机制存…...

鸿蒙与跨端迁移的重要性

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台&#xff0c;支持各种设备之间的无缝协作和数据共享&#xff0c;从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中&#xff0c;跨端迁移…...

成员函数定义后面加const是什么功能:C++中const成员函数的作用

成员函数定义后面加const是什么功能&#xff1a;C中const成员函数的作用 前言C中const成员函数的作用总结 前言 在PX4的代码中的位置控制模块中&#xff0c;有这样一个成员函数 void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;该函数的…...

QSNCTF-WEB做题记录

第一题&#xff0c;文章管理系统 来自 <天狩CTF竞赛平台> 描述&#xff1a;这是我们的文章管理系统&#xff0c;快来看看有什么漏洞可以拿到FLAG吧&#xff1f;注意&#xff1a;可能有个假FLAG哦 1&#xff0c;首先观察题目网站的结构和特征 这个一个文件管理系统&#x…...

UE引擎游戏加固方案解析

据VGinsights的报告&#xff0c;近年来UE引擎在过去几年中市场占比显著增长&#xff0c;其中亚洲市场增幅达到了30%&#xff0c;随着UE5的推出和技术的不断进步&#xff0c;UE引擎在独立开发者和移动游戏开发中的应用也在逐步增加。 UE引擎的优势在于强大的画面表现与视觉特效…...

统计函数运行时间的python脚本

这是一个统计函数运行时间的实用脚本&#xff0c;其中用到了函数的嵌套、链式传输参数&#xff0c;以及修饰器。 import time# 定义一个装饰器timer&#xff0c;用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...

大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3)

大模型WebUI&#xff1a;Gradio全解11——使用transformers.agents构建Gradio UI&#xff08;3&#xff09; 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.3 创建和使用工具Tools11.3.1 默认工具箱与load_tool11.3.2 创建新工具11.3.3 管理代理的工具箱toolbox11.3…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...

二维数组 行列混淆区分 js

二维数组定义 行 row&#xff1a;是“横着的一整行” 列 column&#xff1a;是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...