/proc/pid進程信息

 dr-xr-xr-x 2 tcpdump tcpdump 0 Mar 28 09:08 attr

-r-------- 1 root    root    0 Mar 28 09:08 auxv
-r--r--r-- 1 root    root    0 Mar 28 09:08 cgroup
--w------- 1 root    root    0 Mar 28 09:08 clear_refs
-r--r--r-- 1 root    root    0 Mar 28 08:34 cmdline
-rw-r--r-- 1 root    root    0 Mar 28 09:08 coredump_filter
-r--r--r-- 1 root    root    0 Mar 28 09:08 cpuset
lrwxrwxrwx 1 root    root    0 Mar 28 09:08 cwd -> /root/hotis/a
-r-------- 1 root    root    0 Mar 28 09:08 environ
lrwxrwxrwx 1 root    root    0 Mar 28 09:08 exe -> /usr/sbin/tcpdump
dr-x------ 2 root    root    0 Mar 28 08:33 fd
dr-x------ 2 root    root    0 Mar 28 09:08 fdinfo
-r--r--r-- 1 root    root    0 Mar 28 09:08 io
-r--r--r-- 1 root    root    0 Mar 28 09:08 latency
-r-------- 1 root    root    0 Mar 28 09:08 limits
-rw-r--r-- 1 root    root    0 Mar 28 09:08 loginuid
-r--r--r-- 1 root    root    0 Mar 28 09:08 maps
-rw------- 1 root    root    0 Mar 28 09:08 mem
-r--r--r-- 1 root    root    0 Mar 28 09:08 mountinfo
-r--r--r-- 1 root    root    0 Mar 28 09:08 mounts
-r-------- 1 root    root    0 Mar 28 09:08 mountstats
dr-xr-xr-x 6 tcpdump tcpdump 0 Mar 28 08:33 net
-r--r--r-- 1 root    root    0 Mar 28 09:08 numa_maps
-rw-r--r-- 1 root    root    0 Mar 28 09:08 oom_adj
-r--r--r-- 1 root    root    0 Mar 28 09:08 oom_score
-r-------- 1 root    root    0 Mar 28 09:08 pagemap
-r-------- 1 root    root    0 Mar 28 09:08 personality
lrwxrwxrwx 1 root    root    0 Mar 28 09:08 root -> /
-rw-r--r-- 1 root    root    0 Mar 28 09:08 sched
-r--r--r-- 1 root    root    0 Mar 28 09:08 schedstat
-r--r--r-- 1 root    root    0 Mar 28 09:08 sessionid
-r--r--r-- 1 root    root    0 Mar 28 09:08 smaps
-r-------- 1 root    root    0 Mar 28 09:08 stack
-r--r--r-- 1 root    root    0 Mar 28 08:33 stat
-r--r--r-- 1 root    root    0 Mar 28 09:08 statm
-r--r--r-- 1 root    root    0 Mar 28 08:33 status
-r-------- 1 root    root    0 Mar 28 09:08 syscall
dr-xr-xr-x 3 tcpdump tcpdump 0 Mar 28 09:08 task
-r--r--r-- 1 root    root    0 Mar 28 09:08 wchan
 
 
 
auxv:二進制文件。auxv_t結構數組,包含進程執行時傳遞給動態鏈接器的初始值。
cmdline:進程啓動的命令行參數。譬如一個帶啓動參數的進程,用cat cmdline命令:./getstats./stats.cfg。看起來是不是沒有格式?NO!用vi cmdline查看內容是:./tiap_cstats^@./cstats.cfg^@。所以命令參數間是有間隔的,vi裏看到的”^@”其實是字符’\0′,用c++程序打印出來就可以很清楚的看到。
cpuset:進程綁定的cpu。默認是/
environ:進程使用的環境變量信息。
exe:符號鏈接,指向進程的可執行文件
fd 包含當前進程所有文件描述符的目錄。
         0 – 標準輸入(standard input);
         1 – 標準輸出(standard output);
         2 – 標準錯誤(standard error)。
         從3開始系統自動分配給應用程序使用。若進程使用大量文件句柄(如TCP服務器),要特別關注這個目錄下           的句柄增長情況。系統默認最大允許使用1024個句柄,文件句柄用完之後就會提示錯誤”too many open               files”。一般來說是出現了文件句柄泄漏,使用完之後沒有close。如果需要更改最大句柄使用限制,使用                 ulimic -n命令,如:ulimit -n 10240,從經驗上來講,對於提供tcp服務的進程,該設置是十分必要的。
 
mapped_base 該文件內容是一個地址,共享庫將從該地址裝載到內存。看到的內容是”1073741824″,轉換成十六進制就是0×40000000,這就是默認值。可以把這個值設置低一些,劉更多的內存給應用程序。DB2或Oracle安裝有修改這個值的,讓更多內存留給數據庫共享內存使用,這樣就有超過 2GB 的空間留給數據庫共享內存。
 
maps 保存內存映象。從左到右是:和這個映射有關的地址空間,和這個映射有關的權限,距離文件開始(即這個映射開始的地方)的偏移量,這個映射文件所在的設備,文件的inode號,最後是文件名本身。
b7e31000-b7ee5000 r-xp 00000000 08:01 211854     /usr/lib/libstdc++.so.5.0.7
b7ee5000-b7eea000 rwxp 000b3000 08:01 211854     /usr/lib/libstdc++.so.5.0.7
 
mem 進程的內存被利用情況。用於某一應用程序在某些情況下可以方便的訪問另一應用程序內存。其中之一訪問內存的方法是直接使用mmap()映射頁面。
 
mounts 文件內容是當前進程加載的文件系統。
oom_adj oom_score 特殊用途,保護某個進程不被殺死。oom_adj的取值返回是-17~15,當進程的 oom_adj是-17時,系統將不會殺死它,-16到15使得進程的oom_score值呈指數(K * 2 ^ n)形式遞增,也就是說他們被殺的可能性呈指數形式遞增。如:echo -17 > oom_adj
 
root 鏈接此進程的root目錄
 
smaps 是比maps更詳細的內存映象信息。如中間一段:
b7e31000-b7ee5000 r-xp 00000000 08:01 211854     /usr/lib/libstdc++.so.5.0.7
Size:               720 kB
Rss:                 68 kB
Shared_Clean:        68 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:        0 kB
b7e31000-b7ee5000 是該虛擬內存段的開始和結束位置;r-xp內存段的權限,最後一位p代表私有,s代表共享;00000000 該虛擬內存段在對應的映射文件中的偏移量;08:01文件的主設備和次設備號。211854被映射到虛擬內存的文件的索引節點號; /usr/lib/libstdc++.so.5.0.7 被映射到虛擬內存的文件名稱。
size是進程使用內存空間,並不一定實際分配了內存;Rss是實際分配的內存;Shared_Clean和其他進程共享的未改寫頁面;Shared_Dirty和其他進程共享的已改寫頁面;Private_Clean未改寫的私有頁面頁面;Private_Dirty已改寫的私有頁面頁面;其中Dirty頁面如果沒有交換機制的情況下,應該是不能回收的。所有映射之和應該就是內存使用情況。
 
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
各字段含義:
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實時進程
 
 
statm 進程內存狀態信息,該文件中的所有值都是從系統啓動開始累計到當前時刻。如:654 57 44 0 0 334 0
各字段含義:
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
 
 
status 進程當前狀態,State,PID,UID,PPID等信息。這些信息可通過ps或top看到。

 
task 該目錄列出了進程中所有線程(包括主線程)。每個線程目錄下也有自己的fd等目錄和文件。
 
wchan 不太清楚。
 
 
 

 

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