Linux下查看某個進程所佔用的資源

如何查看某進程佔用內存情況

在 Linux 上進行開發和運營維護的時候,免不了要查看某一個程序所佔用內存的情況。有很多個命令都可以達到我們的需求,這裏給大家列舉幾個:

1:top -p pid 查看程序的情況

2:ps -aux | grep process_name

3:cat /proc/pid/status
這裏會打印出當前進程詳細的情況,其中,內存是 VmRSS。
注:pid是要替換成一個id數字的。

Linux中/proc/[pid]/status詳細說明

在這裏插入圖片描述

參數解釋

Name 應用程序或命令的名字 
State 任務的狀態,運行/睡眠/僵死/ 
SleepAVG 任務的平均等待時間(以nanosecond爲單位),交互式任務因爲休眠次數多、時間長,它們的 sleep_avg 也會相應地更大一些,所以計算出來的優先級也會相應高一些。 
Tgid 線程組號 
Pid 任務ID 
Ppid 父進程ID 
TracerPid 接收跟蹤該進程信息的進程的ID號 
Uid Uid euid suid fsuid 
Gid Gid egid sgid fsgid 
FDSize 文件描述符的最大個數,file->fds 
Groups 
VmSize(KB) 任務虛擬地址空間的大小 (total_vm-reserved_vm),其中total_vm爲進程的地址空間的大小,reserved_vm:進程在預留或特殊的內存間的物理頁 
VmLck(KB) 任務已經鎖住的物理內存的大小。鎖住的物理內存不能交換到硬盤 (locked_vm) 
VmRSS(KB) 應用程序正在使用的物理內存的大小,就是用ps命令的參數rss的值 (rss) 
VmData(KB) 程序數據段的大小(所佔虛擬內存的大小),存放初始化了的數據; (total_vm-shared_vm-stack_vm) 
VmStk(KB) 任務在用戶態的棧的大小 (stack_vm) 
VmExe(KB) 程序所擁有的可執行虛擬內存的大小,代碼段,不包括任務使用的庫 (end_code-start_code) 
VmLib(KB) 被映像到任務的虛擬內存空間的庫的大小 (exec_lib) 
VmPTE 該進程的所有頁表的大小,單位:kb 
Threads 共享使用該信號描述符的任務的個數,在POSIX多線程序應用程序中,線程組中的所有線程使用同一個信號描述符。 
SigQ 待處理信號的個數 
SigPnd 屏蔽位,存儲了該線程的待處理信號 
ShdPnd 屏蔽位,存儲了該線程組的待處理信號 
SigBlk 存放被阻塞的信號 
SigIgn 存放被忽略的信號 
SigCgt 存放被俘獲到的信號 
CapInh Inheritable,能被當前進程執行的程序的繼承的能力 
CapPrm Permitted,進程能夠使用的能力,可以包含CapEff中沒有的能力,這些能力是被進程自己臨時放棄的,CapEff是CapPrm的一個子集,進程放棄沒有必要的能力有利於提高安全性 
CapEff Effective,進程的有效能力 

注,進程狀態:S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數。

參考資料

https://blog.csdn.net/wl1070325332/article/details/60876479

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章