linux查看進程所佔記憶體 proc pid status

來源:互聯網
上載者:User

命令:cat /proc/9744/status   //9744為進程id


Name: gedit /*進程的程式名*/
State: S (sleeping) /*進程的狀態資訊*/
Tgid: 9744 /*線程組號*/
Pid: 9744 /*進程pid*/
PPid: 7672 /*父進程的pid*/
TracerPid: 0 /*跟蹤進程的pid*/
Uid: 1000    1000    1000    1000 /*uid euid suid fsuid*/
Gid: 1000    1000    1000    1000 /*gid egid sgid fsgid*/
FDSize: 256 /*檔案描述符的最大個數,file->fds*/
Groups: 0 4 20 24 25 29 30 44 46 107 109 115 124 1000 /*啟動該進程的使用者所屬的組的id*/
VmPeak: 60184 kB /*進程地址空間的大小*/
VmSize: 60180 kB /*進程虛擬位址空間的大小reserved_vm:進程在預留或特殊的記憶體間的物理頁*/
VmLck: 0 kB /*進程已經鎖住的實體記憶體的大小.鎖住的實體記憶體不能交換到硬碟*/
VmHWM: 18020 kB /*檔案記憶體映射和匿名記憶體映射的大小*/
VmRSS: 18020 kB /*應用程式正在使用的實體記憶體的大小,就是用ps命令的參數rss的值 (rss)*/
VmData: 12240 kB /*程式資料區段的大小(所佔虛擬記憶體的大小),存放初始化了的資料*/
VmStk: 84 kB /*進程在使用者態的棧的大小*/
VmExe: 576 kB /*程式所擁有的可執行虛擬記憶體的大小,程式碼片段,不包括任務使用的庫 */
VmLib: 21072 kB /*被映像到任務的虛擬記憶體空間的庫的大小*/
VmPTE: 56 kB /*該進程的所有頁表的大小*/
Threads: 1 /*共用使用該訊號描述符的任務的個數*/
SigQ: 0/8183 /*待處理訊號的個數/目前最大可以處理的訊號的個數*/
SigPnd: 0000000000000000 /*屏蔽位,儲存了該線程的待處理訊號*/
ShdPnd: 0000000000000000 /*屏蔽位,儲存了該線程組的待處理訊號*/
SigBlk: 0000000000000000 /*存放被阻塞的訊號*/
SigIgn: 0000000000001000 /*存放被忽略的訊號*/
SigCgt: 0000000180000000 /*存放被俘獲到的訊號*/
CapInh: 0000000000000000 /*能被當前進程執行的程式的繼承的能力*/
CapPrm: 0000000000000000 /*進程能夠使用的能力,可以包含CapEff中沒有的能力,這些能力是被進程自己臨時放棄的*/
CapEff: 0000000000000000 /*是CapPrm的一個子集,進程放棄沒有必要的能力有利於提高安全性*/
Cpus_allowed: 01 /*可以執行該進程的CPU掩碼集*/
Mems_allowed: 1 /**/
voluntary_ctxt_switches: 1241 /*進程主動切換的次數*/
nonvoluntary_ctxt_switches: 717 /*進程被動切換的次數*/

附另一文章

1.top
 top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}'
    cpu:0.0% mem:26.4%


2. ps aux
其中:

RSS-------------進程實際佔用實體記憶體大小;

VSZ--------------任務虛擬位址空間的大小

www.111Cn.net
3./proc/pid/status
[root@localhost ~]# cat /proc/self/status
Name: cat
State: R (running)
SleepAVG: 88%
Tgid: 5783
Pid: 5783
PPid: 5742
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 6588 kB
VmLck: 0 kB
VmRSS: 400 kB
VmData: 144 kB
VmStk: 2040 kB
VmExe: 14 kB
VmLib: 1250 kB
StaBrk: 0804e000 kB
Brk: 088df000 kB
StaStk: bfe03270 kB
ExecLim: 0804c000
Threads: 1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff


輸出解釋
參數 解釋
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,進程的有效能力


範例 1
可以看出該應用程式的本文段(1KB)很小,說明代碼很少,是依靠庫(1251KB)來執行。棧(138KB)適中,說明 沒有太多許多嵌套函數或特別多的臨時變數。VmLck為0說明進程沒有鎖住任何頁。VmRSS表示當前進程使用的實體記憶體為2956KB。當進程開始使用 已經申請的但還沒有用的記憶體時,VmRSS的值開始增大,但是VmSize保持不變。
[root@localhost 1]# cat /proc/4668/status
Name: gam_server
State: S (sleeping)
SleepAVG: 88%
Tgid: 31999
Pid: 31999
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 2136 kB
VmLck: 0 kB
VmRSS: 920 kB
VmData: 148 kB
VmStk: 88 kB
VmExe: 44 kB
VmLib: 1820 kB
VmPTE: 20 kB
Threads: 1
SigQ: 1/2047
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001006
SigCgt: 0000000210000800
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
[root@localhost 31999]#4 /proc//statm

www.111cn.net
包含了所有CPU活躍的資訊,該檔案中的所有值都是從系統啟動開始累計到當前時刻。

[root@localhost ~]# cat /proc/self/statm
654 57 44 0 0 334 0

以下是我自己的理解:

從上面可以看出VmRSS才是我們最關心的記憶體大小,即

正在使用的實體記憶體的大小;

而VmSize是進程所擁有的虛擬空間的大小;

“當進程開始使用 已經申請的但還沒有用的記憶體時,

VmRSS的值開始增大,但是VmSize保持不變。”

我們之所以看到許多記憶體的值的大小超過了記憶體的總的大小

是因為這裡顯示的都是虛擬記憶體的大小,而不是實際的佔用的大小;

 

 


這是其它的地方的解釋

From cat /proc/4743/statm
611450 185001 883 18 0 593431 0

1. size :- total program size (611450 X 4096/1024 = 2445800kB = 2388M)
2. resident :- resident set size (185001 X 4096/1024 = 740004kB = 722M)
3. share :- shared pages (883 X 4096 = 3532)
4. trs :- text (code) (18 X 4096/1024 = 72kB = VmExe )
5. drs :- data/stack
6. lrs :- library (593431 X 4096/1024 = 2373724kB = VmData +VmStk)
7. dt :- dirty pages

 


從這裡可以看出第一項是進程的可執行檔大小,X4就等於VmSize

而第二項的值X4就等於VmRSS

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.