在運行程序時有時候會需要查看資源占用,以方便部署在其他服務(wù)器上時進行參考。以下是總結(jié)了我在linux上查找程序進程資源的兩種方法(cpu和gpu都有)。
CPU
1. 查找進程號
如果進程較多,輸入 ps -ef | grep
+ 指令關(guān)鍵詞 進行搜索。如果運行的是python程序,可以輸入 ps -ef | grep python3
比如我想查找所有指令中含hello關(guān)鍵詞的進程,輸入: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
出現(xiàn)以下內(nèi)容:
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代表運行內(nèi)存,%CPU代表運行占用多少核。每100為1.0核(1.0c),以上示例為13.08c。
其他參數(shù)解釋
倒數(shù)第二行為參數(shù)名稱,最后一行是參數(shù)內(nèi)容。以上參數(shù)解釋如下:
- PID:Process ID,進程標識號。這是系統(tǒng)用來唯一標識活動進程的數(shù)字。
- USER:該進程所屬的用戶名稱或ID。
- PR:Priority,進程的優(yōu)先級。它顯示了進程的調(diào)度優(yōu)先級,數(shù)字越小代表優(yōu)先級越高。
- NI:Nice value,進程的nice值。這是一個用戶設(shè)定的優(yōu)先級值,用來影響進程的調(diào)度優(yōu)先級。正值降低優(yōu)先級,負值增加優(yōu)先級。
- VIRT:Virtual Memory Size,虛擬內(nèi)存大小,單位通常是KiB。它包括進程使用的所有可用內(nèi)存,包括交換空間、設(shè)備映射和分配但未使用的內(nèi)存。
- RES:Resident Set Size,常駐內(nèi)存大小。這是該進程已分配的、位于RAM中的非交換區(qū)內(nèi)存的大小,不包括被交換出去的部分。
- SHR:Shared Memory,共享內(nèi)存大小。指的是可被其他進程共享的內(nèi)存量。
-
S:Process Status,進程狀態(tài)。常見狀態(tài)有:
-
S
(sleeping): 睡眠狀態(tài) -
R
(running): 運行狀態(tài) -
T
(stopped): 停止狀態(tài) -
Z
(zombie): 僵尸狀態(tài)
-
- %CPU:該進程占用的CPU百分比。
- %MEM:該進程占用的物理內(nèi)存百分比。
- TIME+:該進程自啟動以來占用的CPU總時間。
- 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、使用的內(nèi)存等信息。通過GPU Memory Usage參數(shù)查看每個進程的GPU的顯存。文章來源:http://www.zghlxwxcb.cn/news/detail-760890.html
實時監(jiān)控
nvidia-smi -l 1
這里 1
可以替換為其他數(shù)字,代表每x秒刷新一次。文章來源地址http://www.zghlxwxcb.cn/news/detail-760890.html
Reference
- TOP命令參數(shù)詳解---10分鐘學會top用法 - 新盟教育的文章 - 知乎
到了這里,關(guān)于在linux中查看運行指定進程資源占用(cpu+gpu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!