GPU显存被占用无法清理问题解决
创作时间:
作者:
@小白创作中心
GPU显存被占用无法清理问题解决
引用
1
来源
1.
http://82.157.247.243/archives/2269
在使用GPU进行深度学习或数据科学任务时,经常会遇到显存被占用但无法清理的问题。本文将通过一个具体案例,详细介绍如何检查GPU使用情况,并使用Linux命令行工具释放被占用的显存。
问题描述
在运行了多个Jupyter Lab Notebook后,发现系统提示"out of memory"。通过nvidia-smi检查GPU使用情况时,虽然显存显示被占用,但占用列表却为空,无法直接看到具体的占用情况。
原因分析
经过排查,发现是由于一个未及时关闭的web_demo_streamlit进程导致的显存占用。
解决方案
1. 使用nvidia-smi检查GPU使用情况
首先使用nvidia-smi命令检查GPU的使用情况。如果发现程序已经关闭了但是还有显存占用,说明有残留进程占用了显存,需要按以下方式释放:
从截图中能看出有程序占用了4388MiB的显存,此时要释放显存,需要先找到进程ID。
2. 使用ps -ef命令终止占用GPU的进程(生产环境不建议操作)
使用ps -ef命令查看全部进程,并通过grep命令识别出可能用到了GPU的进程。接着使用kill -9命令终止这些进程。
ps -ef
ps -ef|grep 关键字
kill -9 进程号
从截图中可以看到python train.py程序的进程ID是594和797,可以使用以下命令来结束进程:
kill -9 594 797
在多卡并行场景下,可以使用以下更强大的方式结束进程:
ps -ef | grep train | awk '{print $2}' | xargs kill -9
更多说明
Linux命令中的|符号称之为管道,作用是把前一个命令的输出作为下一个命令的输入。管道的功能非常实用,在很多场景下都可以使用到,比如某个文件夹下有几万个文件,但是有一个文件是txt文件,其他均为图片,需要将此文件找出来。如果使用ls获取文件列表后人工排查非常麻烦,因此可以使用:
ls | grep .txt
参考资料
- AutoDL 文档 - 显存没有释放
- AutoDL 文档 - 性能篇
先使用nvidia-smi -l 1命令查看GPU使用率,如果GPU使用率为0优先检查代码是否调用了GPU进行计算。如果GPU使用率已经为90%+,则可以考虑换多卡并行或更高算力的GPU。
热门推荐
普洱茶三色紫茶的产地、工艺及品鉴方法全面解析
通心络胶囊对冠心病的疗效如何及有效药物有哪些
如何最大限度地减少或防止冰损?食品科学家出妙计
桥梁工程质量管理与防治措施
拆迁补偿面积怎么算?一文详解住宅、商业用房拆迁补偿标准
单招和高考的区别:招生方式、考试内容等八大差异详解
农村宅基地所有权确定的六个步骤
十大热带雨林探险装备推荐 十类雨林旅行必备好物分享
齿轮齿条式转向器工作原理详解
BJT晶体管基础:从结构到应用
华为手机如何开通漫游
二月二龙抬头:五个传统禁忌背后的文化智慧
我手写我心:浅谈第一人称叙事的魔力
肥牛卷的热量:每100克约250千卡,如何健康食用?
肥牛卷:餐桌上的美味佳肴,味蕾的极致享受
如何应对杠杆投资的风险?这种风险管理对投资者有何重要性?
公务员考试时间不够用?行测答题顺序优化攻略
抖音“发威”,消费者偏向线上购险,未来5年互联网保险保费破万亿元?
2025河南高考人数预测:总人数或达138万,持续三年增长
2024高考人数再创新高,复读生高达413万,这一现象引发热议
“看疆来”系列采风活动:新疆阿克苏的美好不止阿克苏苹果
树的直径算法详解:从基础概念到实战应用
什么药材泡酒治腰痛好
改变一个做饭习惯,能更好控血糖
唐山河头老街:沉浸式体验“唐风”魅力
诺如病毒引起的发热是肠道淋巴结炎的症状吗
滑雪板是什么?一文详解滑雪板的类型与长度选择
汽车冷却系统维护与保养全攻略
定期更换机油,真的能延长发动机寿命吗?
风热感冒是什么病