2023年12月7日发(作者:)

ubuntu服务器查看GPU和CPU实时使用情况

GPU

什么是Nvidia-smi

  nvidia-smi是nvidia 的系统管理界面 ,其中smi是System management interface的缩写,它可以收集各种级别的信息,查看显存使用情

况。此外, 可以启用和禁用 GPU 配置选项 (如 ECC 内存功能)。

a.静态查看

  在终端输入

invidia-smi

即可实现GPU使用情况的静态查看。

b.动态查看

在终端输入

nvidia-smi

watch -n 1 nvidia-smi

(-n后面的数字是更新的时间间隔。)即可实现动态查看,按Ctrl+C退出。

表格参数详解:

GPU:本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0

Fan:风扇转速(0%-100%),N/A表示没有风扇

Name:GPU类型,图上GPU的类型是:Tesla T4

Temp:GPU的温度(GPU温度过高会导致GPU的频率下降)

Perf:GPU的性能状态,从P0(最大性能)到P12(最小性能),图上是:P0

Persistence-M:持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时花费的时间更少,图上显示的是:off

Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap总共多少

Bus-Id:GPU总线相关显示,domain:bus:on

Disp.A:Display Active ,表示GPU的显示是否初始化

Memory-Usage:显存使用率

Volatile GPU-Util:GPU使用率

Uncorr. ECC:关于ECC的东西,是否开启错误检查和纠正技术,0/disabled,1/enabled

Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED

Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU

  显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。跑

caffe代码的时候显存占得少,GPU占得多;跑TensorFlow代码的时候,显存占得多,GPU占得少。

CPU使用情况查看

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

第一行,任务队列信息,第一行,任务队列信息,同 uptime 命令的执行结果

系统时间:16:24:47

运行时间:up 5:49,

当前登录用户: 4 user

负载均衡(uptime) load average: 0.06, 0.04, 0.01

average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计

算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行,Tasks — 任务(进程)

总进程:440total, 运行:1 running, 休眠:248 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie

第三行,cpu状态信息

0.3%us【user space】— 用户空间占用CPU的百分比。

0.1%sy【sysctl】— 内核空间占用CPU的百分比。

0.0%ni【】— 改变过优先级的进程占用CPU的百分比

99.6%id【idolt】— 空闲CPU百分比

0.0%wa【wait】— IO等待占用CPU的百分比

0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比

0.0%si【Software Interrupts】— 软中断占用CPU的百分比

第四行,内存状态

13190016+total, 12436525+free, 1572736 used, 5962168 buff/cache【缓存的内存量】

第五行,swap交换分区信息998396 total, 998396 free, 0 used. 12892276+avail Mem【缓冲的交换区总量】

备注:可用内存=free + buff/cache + avail Mem

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数

据交换,这是真正的内存不够用了。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,

第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。

纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free

中去,因此在linux上free内存会越来越少,但不用为此担心。

第七行以下:各进程(任务)的状态监控

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

其余的操作,参考链接。

参考网址: