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。
热门推荐
葡萄柚:从巴巴多斯到全球餐桌的柑橘传奇
心理学价值是让你有能力改写人生剧本
天德星是什么意思?入十二宫详解
六十四卦与四时、十二月、二十四节气、七十二候关系总结
酒店、客栈与小旅馆:设施、环境与管理的差异
美缝剂与填缝剂的区别:从成分到价格的全面解析
海竿钓法有哪些?常见的有爆炸钩钓法、串钩钓法、水怪笼钓法等!
刑侦传唤后还会再次传唤吗
中国有上万座山,为什么五岳是它们?
向有关国家机关投诉需刻制光盘,要有关单位证明才能邮寄光盘
吃洋葱有什么功效与作用
设计趋势前瞻——未来不锈钢家居全屋定制的创新思维
一篇文章带你看懂ETF(建议收藏)
晨跑时长控制在一小时之内,是不是适用所有人?
如何有效利用电机提升汽车性能?电机在汽车中的应用有哪些优势?
哪些食物有助于补血效果
400亿巨头杉杉集团启动重整!官方回应:不波及上市公司,当地政府全力支持稳定经营
股价暴涨的常山北明:扣非净利润连亏8年,上半年营收利润双降
民法典中房产过户相关问题解答
水碱堵住水管怎么办?管道内壁水垢除垢技巧!
VB编程语言获取网页源代码的两种方法
VB读取网页表格数据的完整指南
如何找出数据库中的表格
金融危机导致的影响:原因、后果和教训
金融危机导致的影响:原因、后果和教训
掌握奥运田径时间表,精准预览全球速度与激情
老车上牌全攻略:步骤与注意事项详解
氢氧化亚铁颜色
如何选购合适的剃须刀?入围测评榜单前6款机型揭秘
如何选择合适的断路器