nvidia-smi
常用的查看显卡基本信息的命令 nvidia-smi 发现显存被占用,但是看不到pid进程
可以使用下面的命令,查看详细的pid进程号和占用的显存
nvidia-smi --query-compute-apps=pid,used_memory --format=csv
原因
- 可能是程序崩了,或者没有kill直接关机导致的僵尸进程
- 也可能是启用的jupyter、gradio等其他挂载程序
- 如果是公用GPU,也可能是其他人的进程
kill进程先大概了解一下是那个情况,别到时候把其他人的进程给断了【苦笑】
解决
直接使用sudo kill pid,kill指定pid进程,本文案例为22131,则为以下命令
sudo kill 22131
或者直接执行以下命令
fuser 命令来查找哪些进程正在使用 /dev/nvidia* 文件
awk 命令来处理 fuser 的输出,遍历每一行输出,以 "kill -9 " 开头,后面跟着每个进程的PID
执行前面生成的命令
sudo fuser -v /dev/nvidia* |awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sudo sh