cat /proc說明

來源:互聯網
上載者:User

PROC系列之---/proc/loadavg等 2009-03-23 16:30

分類:資訊技術 字型大小:
大大 
中中 
小小

該檔案中的所有值都是從系統啟動開始累計到當前時刻。該檔案只給出了所有CPU的集合資訊,不能該出每個CPU的資訊。

[root@localhost ~]# cat /proc/loadavg
4.61 4.36 4.15 9/84 5662

每個值的含義為:
參數 解釋
lavg_1 (4.61) 1-分鐘平均負載
lavg_5 (4.36) 5-分鐘平均負載
lavg_15(4.15) 15-分鐘平均負載
nr_running (9) 在採樣時刻,運行隊列的任務的數目,與/proc/stat的procs_running表示相同意思
nr_threads (84) 在採樣時刻,系統中活躍的任務的個數(不包括運行已經結束的任務)
last_pid(5662) 最大的pid值,包括輕量級進程,即線程。

假設當前有兩個CPU,則每個CPU的當前任務數為4.61/2=2.31

PROC系列之---/proc/stat/

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

[work@builder ~]$ cat /proc/stat
cpu 432661 13295 86656 422145968 171474 233 5346
cpu0 123075 2462 23494 105543694 16586 0 4615
cpu1 111917 4124 23858 105503820 69697 123 371
cpu2 103164 3554 21530 105521167 64032 106 334
cpu3 94504 3153 17772 105577285 21158 4 24
intr
1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7376958 0 0 0 0 0 0 0 1054602 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
ctxt 19067887
btime 1139187531
processes 270014
procs_running 1
procs_blocked 0

輸出解釋
CPU 以及CPU0、CPU1、CPU2、CPU3每行的每個參數意思(以第一行為例)為:
參數 解釋
user (432661) 從系統啟動開始累計到當前時刻,使用者態的CPU時間(單位:jiffies) ,不包含 nice值為負進程。1jiffies=0.01秒
nice (13295) 從系統啟動開始累計到當前時刻,nice值為負的進程所佔用的CPU時間(單位:jiffies)
system (86656) 從系統啟動開始累計到當前時刻,核心時間(單位:jiffies)
idle (422145968) 從系統啟動開始累計到當前時刻,除硬碟IO等待時間以外其它等待時間(單位:jiffies)
iowait (171474) 從系統啟動開始累計到當前時刻,硬碟IO等待時間(單位:jiffies) ,
irq (233) 從系統啟動開始累計到當前時刻,硬停機時間(單位:jiffies)
softirq (5346) 從系統啟動開始累計到當前時刻,非強制中斷時間(單位:jiffies)

CPU時間=user+system+nice+idle+iowait+irq+softirq

“intr”這行給出中斷的資訊,第一個為自系統啟動以來,發生的所有的中斷的次數;然後每個數對應一個特定的中斷自系統啟動以來所發生的次數。
“ctxt”給出了自系統啟動以來CPU發生的上下文交換的次數。
“btime”給出了從系統啟動到現在為止的時間,單位為秒。
“processes (total_forks) 自系統啟動以來所建立的任務的個數目。
“procs_running”:當前運行隊列的任務的數目。
“procs_blocked”:當前被阻塞的任務的數目。

PROC系列之---/proc/pid/stat

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

[root@localhost ~]# cat /proc/6873/stat
6873
(a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0
3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0
2097798 0 0 0 0 0 0 0 17 0 0 0 [root@localhost ~]#

每個參數意思為:
參數 解釋
pid=6873 進程(包括輕量級進程,即線程)號
comm=a.out 應用程式或命令的名字
task_state=R
任務的狀態,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep
(TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead
ppid=6723 父進程ID
pgid=6873 線程組號
sid=6723 c該任務所在的交談群組ID
tty_nr=34819(pts/3) 該任務的tty終端的裝置號,INT(34817/256)=主裝置號,(34817-主裝置號)=次裝置號
tty_pgrp=6873 終端的進程組號,當前運行在該任務所在終端的前台任務(包括shell 應用程式)的PID。
task->flags=8388608 進程標誌位,查看該任務的特性
min_flt=77 該任務不需要從硬碟拷資料而發生的缺頁(次缺頁)的次數
cmin_flt=0 累計的該任務的所有的waited-for進程曾經發生的次缺頁的次數目
maj_flt=0 該任務需要從硬碟拷資料而發生的缺頁(主缺頁)的次數
cmaj_flt=0 累計的該任務的所有的waited-for進程曾經發生的主缺頁的次數目
utime=1587 該任務在使用者態啟動並執行時間,單位為jiffies
stime=1 該任務在核心態啟動並執行時間,單位為jiffies
cutime=0 累計的該任務的所有的waited-for進程曾經在使用者態啟動並執行時間,單位為jiffies
cstime=0 累計的該任務的所有的waited-for進程曾經在核心態啟動並執行時間,單位為jiffies
priority=25 任務的動態優先順序
nice=0 任務的靜態優先順序
num_threads=3 該任務所在的線程組裡線程的個數
it_real_value=0 由於計時間隔導致的下一個 SIGALRM 發送進程的時延,以 jiffy 為單位.
start_time=5882654 該任務啟動的時間,單位為jiffies
vsize=1409024(page) 該任務的虛擬位址空間大小
rss=56(page) 該任務當前駐留物理地址空間的大小
Number of pages the process has in real memory,minu 3 for administrative purpose.
這些頁可能用於代碼,資料和棧。
rlim=4294967295(bytes) 該任務能駐留物理地址空間的最大值
start_code=134512640 該任務在虛擬位址空間的程式碼片段的起始地址
end_code=134513720 該任務在虛擬位址空間的程式碼片段的結束位址
start_stack=3215579040 該任務在虛擬位址空間的棧的結束位址
kstkesp=0 esp(32 位堆棧指標) 的當前值, 與在進程的核心堆棧頁得到的一致.
kstkeip=2097798 指向將要執行的指令的指標, EIP(32 位指令指標)的當前值.
pendingsig=0 待處理訊號的位元影像,記錄發送給進程的普通訊號
block_sig=0 阻塞訊號的位元影像
sigign=0 忽略的訊號的位元影像
sigcatch=082985 被俘獲的訊號的位元影像
wchan=0 如果該進程是睡眠狀態,該值給出調度的調用點
nswap 被swapped的頁數,當前沒用
cnswap 所有子進程被swapped的頁數的和,當前沒用
exit_signal=17 該進程結束時,向父進程所發送的訊號
task_cpu(task)=0 運行在哪個CPU上
task_rt_priority=0 即時進程的相對優先順序別
task_policy=0 進程的調度策略,0=非即時進程,1=FIFO即時進程;2=RR即時進程

PROC系列之---/proc/pid/statm

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

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

輸出解釋
CPU 以及CPU0。。。的每行的每個參數意思(以第一行為例)為:
參數 解釋 /proc/ /status
Size (pages) 任務虛擬位址空間的大小 VmSize/4
Resident(pages) 應用程式正在使用的實體記憶體的大小 VmRSS/4
Shared(pages) 共用頁數 0
Trs(pages) 程式所擁有的可執行虛擬記憶體的大小 VmExe/4
Lrs(pages) 被映像到任務的虛擬記憶體空間的庫的大小 VmLib/4
Drs(pages) 程式資料區段和使用者態的棧的大小 (VmData+ VmStk )4
dt(pages) 0

PROC系列之---/proc/pid/status

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

[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]#

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.