【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 投放核弹,一键全杀2.4 再次查看GPU使用情况 参考资料 一、问题描述 今天使用服务器的时候发现gpu被占了很多内存,但是使用 nvidia-smi 命令并没有发现占这么多显存的进程&am…...
【并发编程】Java并发编程核心包
1、简介 java.util.concurrent 是 Java 并发编程的核心包,提供了丰富的工具和框架来支持多线程编程、并发任务执行、线程安全集合、同步机制等。 2、线程池Thread Pool 线程池是并发编程中最重要的工具之一,用于管理和复用线程,避免频繁创…...
Unity 淡入淡出
淡入(Fade in):类似打开幕布 淡出(Fade out):类似关上幕布 方案一 使用Dotween(推荐) using DG.Tweening; using UnityEngine; using UnityEngine.UI;public class Test : MonoB…...
完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练
完整的 LoRA 模型训练步骤:如何使用 Kohya_ss 进行 LoRA 训练 一、环境配置1. 安装 Python 和虚拟环境2. 克隆 Kohya_ss 仓库3. 安装依赖4. 启动 GUI lora训练1. 准备数据 图片处理打标签2. 配置 LoRA 训练2.2 配置图片文件夹和输出目录 训练解决方法: 使…...
视觉分析之边缘检测算法
9.1 Roberts算子 Roberts算子又称为交叉微分算法,是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条。 常用来处理具有陡峭的低噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更理想。 其缺点是对边缘的定位…...
git输错用户名或者密码
git push时候跳出window弹窗,输入用户名和密码,如果错误,会有如下情况: $ git push -u origin “master” remote: [session-6c466aa6] rain: Incorrect username or password (access token) fatal: Authentication failed for ‘…...
【Unity Shader编程】之图元装配与光栅化
执行方式:自动完成 图元装配自动化流程 顶点坐标存入装配区 → 按绘制模式连接顶点 → 生成完整几何图元 示例:gl.drawArrays(gl.TRIANGLES, 0, 3)自动生成三角形 会自动自动裁剪超出屏幕范围(NDC空间外)的三角形,仅保…...
以ChatGPT为例解析大模型背后的技术
目录 1、大模型分类 2、为什么自然语言处理可计算? 2.1、One-hot分类编码(传统词表示方法) 2.2、词向量 3、Transformer架构 3.1、何为注意力机制? 3.2、注意力机制在 Transformer 模型中有何意义? 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 构…...
数据中心储能蓄电池状态监测管理系统 组成架构介绍
安科瑞刘鸿鹏 摘要 随着数据中心对供电可靠性要求的提高,蓄电池储能系统成为关键的后备电源。本文探讨了蓄电池监测系统在数据中心储能系统中的重要性,分析了ABAT系列蓄电池在线监测系统的功能、技术特点及其应用优势。通过蓄电池监测系统的实施&#…...
layui.table.exportFile 导出数据并清除单元格中的空格
Layui在执行数据导出的时候,会出现部分数据单元格中有空格的情况,下面的方法可以去除掉单元格中的空格,供大家参考!! function table_export(id,title) {//根据传入tableID获取表头var headers $("div[lay-id" id "] .layu…...
vue-指令
前端开发Vue的指令 Vue.js 提供了丰富的指令系统,用于扩展HTML的功能和行为。这些指令可以分为内置指令和自定义指令两大类。以下是对Vue.js中常见指令的详细解释和示例: 1. 内置指令 1.1 插值表达式 用法:{{ expression }}示例ÿ…...
跟着李沐老师学习深度学习(十三)
现代循环神经网络 循环神经网络中梯度异常在实践中的意义引发了一些问题: 早期观测值影响重大:早期观测值对预测所有未来观测值极为重要,如序列中第一个观测值包含校验和,需在序列末尾辨别其是否正确,若无特殊机制存…...
鸿蒙与跨端迁移的重要性
鸿蒙操作系统(HarmonyOS)是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台,支持各种设备之间的无缝协作和数据共享,从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中,跨端迁移…...
成员函数定义后面加const是什么功能:C++中const成员函数的作用
成员函数定义后面加const是什么功能:C中const成员函数的作用 前言C中const成员函数的作用总结 前言 在PX4的代码中的位置控制模块中,有这样一个成员函数 void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;该函数的…...
QSNCTF-WEB做题记录
第一题,文章管理系统 来自 <天狩CTF竞赛平台> 描述:这是我们的文章管理系统,快来看看有什么漏洞可以拿到FLAG吧?注意:可能有个假FLAG哦 1,首先观察题目网站的结构和特征 这个一个文件管理系统&#x…...
UE引擎游戏加固方案解析
据VGinsights的报告,近年来UE引擎在过去几年中市场占比显著增长,其中亚洲市场增幅达到了30%,随着UE5的推出和技术的不断进步,UE引擎在独立开发者和移动游戏开发中的应用也在逐步增加。 UE引擎的优势在于强大的画面表现与视觉特效…...
统计函数运行时间的python脚本
这是一个统计函数运行时间的实用脚本,其中用到了函数的嵌套、链式传输参数,以及修饰器。 import time# 定义一个装饰器timer,用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...
大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3)
大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(3) 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.3 创建和使用工具Tools11.3.1 默认工具箱与load_tool11.3.2 创建新工具11.3.3 管理代理的工具箱toolbox11.3…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
