显存占用但查不到异常情况


今天遇到nvidia-smi 查不到显存占用的程序,但是显存一直被占用无法释放。

【Linux】linux无进程显示占用的显存释放方法_heiheiya的博客-CSDN博客_linux 释放显存

查看这篇文章,使用fuser命令进行查看

用法:fuser [-fIMuvw] [-a|-s] [-4|-6] [-c|-m|-n 命名空间]
            [-k [-i] [-信号]] 名字...
      fuser -l
      fuser -V
显示哪些进程使用指定的文件、端口或文件系统。

  -a,--all              也显示未使用的文件
  -i,--interactive      杀死程序前询问 (未指定 -k 选项时被忽略)
  -I,--inode            总是使用 inode 来比较文件
  -k,--kill             杀死访问指定文件的进程
  -l,--list-signals     列出可用的信号名
  -m,--mount            显示所有使用指定文件系统或块设备的进程
  -M,--ismountpoint     只在 <名字> 为挂载点时完成要求
  -n,--namespace 空间   在指定命名空间中查找 (file、udp 或 tcp)
  -s,--silent           不输出信息
  -信号                 发送指定的 "信号" 而不是 SIGKILL
  -u,--user             显示用户 ID
  -v,--verbose          输出更多信息
  -w,--writeonly        只杀死有权写入的进程
  -V,--version          显示版本信息
  -4,--ipv4             仅查找 IPv4 套接字
  -6,--ipv6             仅查找 IPv6 套接字
  -                     重置选项

  udp/tcp 名字格式: [本地端口][,[远程主机][,[远程端口]]]

fuser -v /dev/nvidia* ,查看NVIDIA相关文件占用情况,然后进行强制杀掉进程进行释放,以上操作推荐在root账户下进行。

如果查出来有很多的进行id,此时最好使用shell脚本进行批量杀除。

Linux下Shell的for循环语句 - EasonJim - 博客园 (cnblogs.com)

#!/bin/bash  
  
for((i=1;i<=10;i++));  
do   
kill -9 $i; 
done  

注意给脚本赋予执行权限,chmox +x <你的脚本名称>.sh

之后就可以看到显存被释放了


文章作者: luwanglin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 luwanglin !
评论
  目录