首页 > 系统相关 >在linux中查看运行指定进程资源占用(cpu+gpu)

在linux中查看运行指定进程资源占用(cpu+gpu)

时间:2023-12-26 10:24:55浏览次数:43  
标签:00 优先级 linux CPU 内存 GPU 进程 gpu cpu

在运行程序时有时候会需要查看资源占用,以方便部署在其他服务器上时进行参考。以下是总结了我在linux上查找程序进程资源的两种方法(cpu和gpu都有)。

CPU

1. 查找进程号

如果进程较多,输入 ps -ef | grep + 指令关键词 进行搜索。如果运行的是python程序,可以输入 ps -ef | grep python3

比如我想查找所有指令中含hello关键词的进程,输入:ps -ef | grep hello

输出示例:

user      52584  75914  0 13:22 pts/9    00:00:00 docker run -it -p 8887:8887 image_hello:v1
user 	  12345  12345  0 13:21 pts/4    00:00:00 python3 hello.py

其中第二列为pid

2. 查看指定进程号

用top指令查看指定进程(例如我这里查看PID为3833)的进程:

top -p 3833

出现以下内容:

Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s): 30.8 us, 11.3 sy,  0.0 ni, 55.6 id,  2.2 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem : 26359936+total, 10537104 free, 64877176 used, 18818508+buff/cache
KiB Swap:        0 total,        0 free,        0 used. 19780235+avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND             
 12345 root      20   0   11.1g   1.9g 126324 S  1308  0.8 196:31.05 python3  

其中 RES代表运行内存,%CPU代表运行占用多少核。每100为1.0核(1.0c),以上示例为13.08c。

其他参数解释

倒数第二行为参数名称,最后一行是参数内容。以上参数解释如下:

  1. PID:Process ID,进程标识号。这是系统用来唯一标识活动进程的数字。
  2. USER:该进程所属的用户名称或ID。
  3. PR:Priority,进程的优先级。它显示了进程的调度优先级,数字越小代表优先级越高。
  4. NI:Nice value,进程的nice值。这是一个用户设定的优先级值,用来影响进程的调度优先级。正值降低优先级,负值增加优先级。
  5. VIRT:Virtual Memory Size,虚拟内存大小,单位通常是KiB。它包括进程使用的所有可用内存,包括交换空间、设备映射和分配但未使用的内存。
  6. RES:Resident Set Size,常驻内存大小。这是该进程已分配的、位于RAM中的非交换区内存的大小,不包括被交换出去的部分。
  7. SHR:Shared Memory,共享内存大小。指的是可被其他进程共享的内存量。
  8. S:Process Status,进程状态。常见状态有:
    • S (sleeping): 睡眠状态
    • R (running): 运行状态
    • T (stopped): 停止状态
    • Z (zombie): 僵尸状态
  9. %CPU:该进程占用的CPU百分比。
  10. %MEM:该进程占用的物理内存百分比。
  11. TIME+:该进程自启动以来占用的CPU总时间。
  12. COMMAND:启动进程的命令名称或命令行。

GPU

  • 如果是NVIDIA GPU,可以使用 nvidia-smi 命令。它会显示所有NVIDIA GPU的使用情况,包括每个GPU的利用率,以及每个进程的具体GPU使用情况。
  • nvidia-smi 指令示例输出如下:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 3080    Off  | 00000000:01:00.0  On |                  N/A |
| 30%   55C    P2    70W / 320W |   5478MiB / 10018MiB |     28%      Default |
+-------------------------------+----------------------+----------------------+
                                                                             
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1569      G   /usr/lib/xorg/Xorg                169MiB |
|    0   N/A  N/A      2410      G   /usr/bin/gnome-shell              106MiB |
|    0   N/A  N/A      4021      C   python3                          5201MiB |
+-----------------------------------------------------------------------------+

Processes部分显示了当前在GPU上运行的进程列表,通常包括进程ID、使用的GPU、使用的内存等信息。通过GPU Memory Usage参数查看每个进程的GPU的显存。

实时监控

nvidia-smi -l 1

这里 1 可以替换为其他数字,代表每x秒刷新一次。

Reference

  1. TOP命令参数详解---10分钟学会top用法 - 新盟教育的文章 - 知乎

标签:00,优先级,linux,CPU,内存,GPU,进程,gpu,cpu
From: https://www.cnblogs.com/tungsten106/p/linux_check_resources.html

相关文章

  • linux经典电灯驱动(古老版,参考用)
    驱动程序#include<linux/types.h>#include<linux/kernel.h>#include<linux/delay.h>#include<linux/ide.h>#include<linux/init.h>#include<linux/module.h>#include<linux/errno.h>#include<linux/gpio.h>#inc......
  • linux声音处理 alsa & jack 是什么
    alsa(AdvancedLinuxSoundArchitecture)是什么:简单的说,linux之前的内核里处理声音使用oss,后来大家觉得不好用,重写了声音部分,改名叫alsa(更高级的),并且提供了用户空间库(alsa-lib),供应用程序方便调用。官方说明:高级Linux声音架构(ALSA)为Linux操作系统提供音频和MIDI......
  • node.js安装到Linux
    下载地址:https://nodejs.org/dist/1、准备node安装包,可以进入镜像站 ,自行选择版本进行下载,这里下载的是 node-v12.22.3-linux-x64.tar.xz2、将本地的安装包上传到linux服务器上,我这里放在/home/software目录下3、在/usr/local下创建node文件夹mkdir/usr/local/......
  • Maven安装步骤--linux
    安装 maven环境前,需要先安装java环境Linux安装jdk1、maven 官网下载安装包maven官网地址:Maven–DownloadApacheMaven历史版本3.6.3为例:  2、安装maven 2.1创建maven文件夹,仓库文件夹mkdir-p/usr/local/maven  mkdir-p/usr/local/maven/reposi......
  • Linux配置NFS文件共享
    一、NFS简介NFS是NetworkFileSystem的缩写,是一种分布式文件系统协议,用于在计算机网络上共享文件。它允许客户端计算机通过网络远程访问和处理远程服务器上的文件和目录。NFS最初由SunMicrosystems开发并在1984年发布,被设计为可在不同操作系统和硬件平台之间共享文件。它基于客户......
  • JavaScript读写FM1208 CPU卡源码
    本示例使用的发卡器:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv=&quo......
  • Linux文件系统(以ext2为例)
    所有的计算机程序都需要存储和检索信息。长期存储信息有三个基本要求:能够存储大量信息。存储必须持久化。多个进程可以并发访问这些信息。这些任务一般由磁盘来进行。虽然固态硬盘在近年逐渐流行,但传统磁盘依然是存储大量数据的首选。本文只针对磁盘,不对固态硬盘进行讨论。使用磁盘......
  • 1.Linux是什么与如何学习
    第1章Linux是什么与如何学习历史部分略过。1.2.5Linux的内核版本Linux的内核版本编号有点类似如下的样子:3.10.0-123.el7.x86_64主版本.次版本.发布版本-修改版本虽然编号就是如上的方式来编的,不过依据Linux内核的发展期程,内核版本的定义有点不太相同奇数、偶数版......
  • Linux收包之数据L3层是如何流转的
    一、环境说明内核版本:Linux3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source(包含各个版本内核源码,且网页可全局搜索函数)网卡:Intel的igb网卡网卡驱动源码目录:drivers/net/ethernet/intel/igb/二、L3层概览 本章主要介绍收包的流程,在L3层是如何处理的。......
  • linux 用户注销
    1.先用w命令查看当前登录系统的用户:[root@centos~]#w11:48:09up 3:13, 2users, loadaverage:0.00,0.01,0.00USER  TTY   FROM       LOGIN@ IDLE JCPU PCPUWHATroot  pts/0  218.17.167.82  11:47  0.00s......