linux CUDA nvidia-smi无显存占用 手动释放

本文介绍如何使用nvidia-smi监控GPU显存占用情况,通过fuser命令找出占用GPU资源的死进程及其ID,并利用sudo权限结束这些进程,有效管理GPU资源。
部署运行你感兴趣的模型镜像

在这里插入图片描述

1 nvidia-smi 查看显存占用
2 fuser -v /dev/nvidia* 查看占用的死进程ID
在这里插入图片描述
3 sudo kill -9 PID(替换进程号)

您可能感兴趣的与本文相关的镜像

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

Linux远程服务器上,有时会出现`gpustat`显示没有GPU进程运行,但GPU显存仍被占用的情况。这可能是由多种原因造成的,以下是一些常见的可能性及其解决方法。 ### 原因分析 1. **僵尸进程或异常退出的进程**:某些情况下,GPU进程可能异常终止而未能正确释放占用显存资源。这种情况下的显存占用通常会在一段时间后自动释放,但如果系统未能正确回收,则需要手动干预[^1]。 2. **驱动问题**:NVIDIA驱动程序可能存在bug,导致即使所有已知的GPU进程都已结束,显存仍然未被释放。更新到最新版本的驱动程序可以解决这类问题[^1]。 3. **CUDA上下文泄漏**:应用程序可能会因为编程错误而导致CUDA上下文泄漏,即应用程序创建了CUDA上下文但未能正确销毁它们。这种泄漏会导致显存无法被其他进程使用[^1]。 4. **后台服务占用**:有时候,一些后台服务或者守护进程(如Docker容器内的服务)可能在用户不知情的情况下使用了GPU资源,这些服务可能不会出现在标准的`gpustat`输出中[^1]。 ### 解决方案 - **重启相关服务**:如果确定是某个特定的服务导致的问题,尝试重启该服务以释放显存。对于由Docker容器引起的情况,重启相应的容器可能有助于解决问题。 - **更新驱动和软件**:确保使用的NVIDIA驱动程序以及相关的CUDA工具包都是最新的版本,这样可以减少由于软件缺陷引起的显存管理问题。 - **检查并清理僵尸进程**:使用`nvidia-smi`命令查看详细的GPU使用情况,包括PID等信息。找到疑似僵尸进程的条目后,可以通过发送SIGKILL信号给这些进程来强制终止它们,进而释放显存- **重启系统**:作为最后手段,如果上述方法都无法解决问题,那么重启整个系统通常是最快捷有效的方式。不过,在采取此措施前应尽量保存好所有必要的数据和日志,以便后续分析问题根源。 ```bash # 查看当前GPU状态 nvidia-smi # 强制杀死指定PID的进程 kill -9 <PID> # 重启nvidia驱动模块(需root权限) modprobe -r nvidia_uvm && modprobe nvidia_uvm ``` 以上脚本提供了几个基本的操作命令,用于诊断和处理GPU显存占用问题。请注意,在执行任何操作之前都应该充分评估风险,并确保了解每一步操作的具体含义。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值