ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令

  要查看gpu占用,这里介绍两个方法,一个是官方的nvidia-smi,装完显卡驱动就能使用了;另一个是gpustat,更方便于查看gpu使用情况。

1 nvidia-smi

  在终端输入命令nvidia-smi,可以查看显卡使用情况:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第1张图片
  但是,这样只能查看某一时刻的显卡使用情况。为了实时显示显卡的使用情况,可以添加参数。在终端输入命令:

watch -n 5 nvidia-smi

  这样系统就会每隔5秒刷新一次使用情况。这里的5可以依据需要进行修改。
  如上图所示,在下面的虚线框里显示了占用GPU的进程信息。每个进程有一个唯一的PID,如果想关闭掉某个进程,可以使用命令:

sudo kill -9  PID

  比如我这里要结束掉占用GPU内存最大的PID为12713的进程,则执行命令sudo kill -9 12713,然后再查看GPU使用情况,如下图所示:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第2张图片
  

2 gpustat

  详情及历史版本可以查看github链接,安装方式有如下三种:

pip install gpustat
pip install --user gpustat
pip install git+https://github.com/wookayin/gpustat.git@master

  可以都尝试一下,哪个能成功安装就行。我是用第二个命令安装成功的,第一个和第三个都不行。但是安装完成后提示我没有添加环境变量,如下图所示:
在这里插入图片描述
  所以在命令行使用gpustat的时候显式找不到命令。添加环境变量可以网上直接搜方法,我是在~/.bashrc文件末尾添加了export PATH=$PATH:/home/xxx/.local/bin这里xxx就是上图打码的部分,看你电脑的路径了。完成后保存然后命令行执行source ~/.bashrc即可。
  安装完成后,在命令行输入gpustat即可看到当前gpu的使用情况,如下图所示:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第3张图片
  每一项的内容含义为:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第4张图片
  当然,使用gpustat也可以通过watch命令实时查看gpu使用情况,命令如下:

watch -n 1 gpustat    # 每隔1s刷新一次

  

3 两种方式对比

nvidia-smi

  • 显式内容更全面,包括PID(可用于结束进程)
  • 使用格网线,更美观

gpustat

  • 可以清楚看到哪些人哪些任务占用了多少显存(在多人使用同一服务器的情况下很实用)
  • 内容精炼,但是看不到PID

总结就是两种方法各有优劣,在服务器下两者搭配使用效果更佳!

  

4 完整查看所有进程PID方法

  如上所述,如果你需要终止某个进程,你需要首先获知它的PID,而nvidia-smi方法才能看到PID。但是,这种方式通常只能看到有限数量的PID(通常是8个),多余的你就看不到了,如下图所示:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第5张图片
  那如果我要终止这里没显示出来的一些进程,该怎么查看PID呢?使用如下命令即可:

fuser -v /dev/nvidia*

  显示如下:
ubuntu下实时查看GPU使用情况的两种方式(nvidia-smi、gpustat)及结束占用GPU进程的命令_第6张图片
  这里首先分GPU进行进程显示,然后下面的nvidiactl是总的按PID降序进行显示的结果。
  

5 一键杀掉某用户所有进程的方法

  如上所述,如果我同时在后台跑了很多个任务,我现在想将它们全部kill掉。如果通过PID一个个kill,那感觉有点麻烦。要批量kill的话,可以自己写一个脚本,然后将目标PID的进程给kill了。还一种方法是,直接将这个用户的所有进程给kill掉(注意,是该用户运行在GPU上的所有进程,所以如果并不是想全部清空,就不要用这个方法)。
  比如我要kill掉名为xiaoming的用户的所有显存占用,有两种命令,效果是一样的,如下:

pkill -u xiaoming
killall -u xiaoming

你可能感兴趣的:(Ubuntu,ubuntu,gpu,cuda)