nvidia-smi发现GPU的显存是满的,但是显示出来的进程只有两个,一共才占用2G,
怎么也查不出来其他进程占用
于是乎我用nvidia-smi --query-compute-apps=pid,used_memory --format=csv
pid, used_gpu_memory [MiB]
2127292, 19498 MiB
2594601, 24090 MiB
1145328, 1636 MiB
3827010, 1196 MiB
3114951, 1846 MiB
42007, 1780 MiB
1246739, 19882 MiB
2328702, 1808 MiB
1697504, 524 MiB
2831323, 410 MiB
2831331, 410 MiB
2831346, 410 MiB
2831374, 410 MiB
2831352, 410 MiB
2831394, 410 MiB
2831362, 410 MiB
2831383, 410 MiB
4074102, 690 MiB
4074066, 1870 MiB
4074068, 2332 MiB
4074090, 690 MiB
4074079, 3298 MiB
4074114, 690 MiB
4074123, 690 MiB
4074138, 690 MiB
去查看进程,然后和所有GPU对应的进程号去比对,发现好多对不上的进程
然后用该命令去查这些进程是啥
ps -p 4074079 -o pid,stat,cmd
显示是僵尸进程,但是还占着显存
4074079 Z [pt_main_thread] <defunct>
且我用kill - 9进行kill时,并没有用,原来是需要先杀死父进程,才能顺利杀死子进程,
然后去查该进程的父进程
ps -o ppid= -p 4074079
最后根据从父进程进行kill,再kill子进程,最终解决GPU显存对不上的问题