NTop(nvidia-smi+top):Linux下命令行小工具监控GPU占用情况
一、快速开始
1.1 下载
- NVIDIA 20系及前代GPU:https://github.com/xieqk/ntop/releases/download/v0.1/ntop
- NVIDIA RTX 30 系显卡,如 RTX 3090:https://github.com/xieqk/ntop/releases/download/v0.1.3090/ntop
下载好后可直接运行,或参考下面的 使用
部分查看如何加入环境变量并在任意位置直接运行。
1.2 介绍
简单写了一个在 Linux 下将 nvidia-smi
和 top
命令输出整合的一个小工具,查看正在使用GPU的进程,并将相关信息整理输出。
输出内容包括:
顶部:CPU 及内存占用情况(绿色:占用低,蓝色:中等,红色:占用高)
- CPU 占用量/率
- 内存 占用量/率
表一:nvidia-smi 输出信息的上半部分
- 每个 GPU 卡的显存占用量/率和计算资源占用率
表二:nvidia-smi 输出信息的下半部分
- 每个卡上占用进程,及 PID、显存占用、用户名和进程使用命令
表三:通过进程 PID 在 top 输出中查询到的相关信息
- 每个主进程的 PID、用户名、线程数、CPU占用率(一核为100%),真实运行时间,CPU时间
示例图如下:
1.3 使用
将可执行程序所在目录加入环境变量,即可直接在命令行任何位置使用 ntop
查看当前 GPU 使用情况。
下例中已将该可执行程序复制到了 Home
目录下的 bin
文件夹中(~/bin
),然后将该目录添加进环境变量如下(一次性)。
1 | export PATH=$PATH:~/bin |
也可将上述语句加入 ~/.bashrc
文件的末尾,即可在每次登录时均将 ~/bin
目录加入用户环境变量(当前窗口需 source ~/.bashec
激活一下)。
由于程序用使用了颜色输出,在通过 watch
命令持续监控时需要加 --color
参数,如:
1 | # 每一秒输出一次:-n 1 |
二、从源码开始
2.1 安装依赖
- psutil
- tabulate
- pyinstaller
Conda 安装
1 | conda install -c conda-forge psutil tabulate pyinstaller |
(或) Pip 安装
1 | pip install -i https://opentuna.cn/pypi/web/simple psutil tabulate pyinstaller |
2.2 运行
依赖安装完成后,不出意外直接运行即可
1 | python ntop.py |
2.3 构建可执行程序
其中带3090表示支持3090显卡,不带表示支持30系以前代的显卡。
1 | # -F 打包成单个文件,-n 指定输出名字 |
打包后,可在 dist
文件夹中找到可执行程序。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 谢乔康 | Qiaokang Xie!
评论