標籤:
Linux系統上的/proc目錄是一種檔案系統,即proc檔案系統。與其它常見的檔案系統不同的是,/proc是一種偽檔案系統(也即虛擬檔案系統),儲存的是當前核心運行狀態的一系列特殊檔案,使用者可以通過這些檔案查看有關係統硬體及當前正在運行進程的資訊,甚至可以通過更改其中某些檔案來改變核心的運行狀態。
基於/proc檔案系統如上所述的特殊性,其內的檔案也常被稱作虛擬檔案,並具有一些獨特的特點。例如,其中有些檔案雖然使用查看命令查看時會返回大量資訊,但檔案本身的大小卻會顯示為0位元組。此外,這些特殊檔案中大多數檔案的時間及日期屬性通常為當前系統時間和日期,這跟它們隨時會被重新整理(儲存於RAM中)有關。
為了查看及使用上的方便,這些檔案通常會按照相關性進行分類儲存於不同的目錄甚至子目錄中,如/proc/scsi目錄中儲存的就是當前系統上所有SCSI裝置的相關資訊,/proc/N中儲存的則是系統當前正在啟動並執行進程的相關資訊,其中N為正在啟動並執行進程(可以想象得到,在某進程結束後其相關目錄則會消失)。
大多數虛擬檔案可以使用檔案查看命令如cat、more或者less進行查看,有些檔案資訊表述的內容可以一目瞭然,但也有檔案的資訊卻不怎麼具有可讀性。不過,這些可讀性較差的檔案在使用一些命令如apm、free、lspci或top查看時卻可以有著不錯的表現。
一、 進程目錄中的常見檔案介紹
/proc目錄中包含許多以數字命名的子目錄,這些數字表示系統當前正在運行進程的進程號,裡麵包含對應進程相關的多個資訊檔。
[[email protected] ~]# ll /proc
total 0
dr-xr-xr-x 5 root root 0 Feb 8 17:08 1
dr-xr-xr-x 5 root root 0 Feb 8 17:08 10
dr-xr-xr-x 5 root root 0 Feb 8 17:08 11
dr-xr-xr-x 5 root root 0 Feb 8 17:08 1156
dr-xr-xr-x 5 root root 0 Feb 8 17:08 139
dr-xr-xr-x 5 root root 0 Feb 8 17:08 140
dr-xr-xr-x 5 root root 0 Feb 8 17:08 141
dr-xr-xr-x 5 root root 0 Feb 8 17:09 1417
dr-xr-xr-x 5 root root 0 Feb 8 17:09 1418
上面列出的是/proc目錄中一些進程相關的目錄,每個目錄中是當程本身相關資訊的檔案。下面是作者系統(RHEL5.3)上啟動並執行一個PID為2674的進程saslauthd的相關檔案,其中有些檔案是每個進程都會具有的,後文會對這些常見檔案做出說明。
[[email protected] ~]# ll /proc/2674
total 0
dr-xr-xr-x 2 root root 0 Feb 8 17:15 attr
-r-------- 1 root root 0 Feb 8 17:14 auxv
-r--r--r-- 1 root root 0 Feb 8 17:09 cmdline
-rw-r--r-- 1 root root 0 Feb 8 17:14 coredump_filter
-r--r--r-- 1 root root 0 Feb 8 17:14 cpuset
lrwxrwxrwx 1 root root 0 Feb 8 17:14 cwd -> /var/run/saslauthd
-r-------- 1 root root 0 Feb 8 17:14 environ
lrwxrwxrwx 1 root root 0 Feb 8 17:09 exe -> /usr/sbin/saslauthd
dr-x------ 2 root root 0 Feb 8 17:15 fd
-r-------- 1 root root 0 Feb 8 17:14 limits
-rw-r--r-- 1 root root 0 Feb 8 17:14 loginuid
-r--r--r-- 1 root root 0 Feb 8 17:14 maps
-rw------- 1 root root 0 Feb 8 17:14 mem
-r--r--r-- 1 root root 0 Feb 8 17:14 mounts
-r-------- 1 root root 0 Feb 8 17:14 mountstats
-rw-r--r-- 1 root root 0 Feb 8 17:14 oom_adj
-r--r--r-- 1 root root 0 Feb 8 17:14 oom_score
lrwxrwxrwx 1 root root 0 Feb 8 17:14 root -> /
-r--r--r-- 1 root root 0 Feb 8 17:14 schedstat
-r-------- 1 root root 0 Feb 8 17:14 smaps
-r--r--r-- 1 root root 0 Feb 8 17:09 stat
-r--r--r-- 1 root root 0 Feb 8 17:14 statm
-r--r--r-- 1 root root 0 Feb 8 17:10 status
dr-xr-xr-x 3 root root 0 Feb 8 17:15 task
-r--r--r-- 1 root root 0 Feb 8 17:14 wchan
1.1、cmdline — 啟動當前進程的完整命令,但殭屍進程目錄中的此檔案不包含任何資訊;
[[email protected] ~]# more /proc/2674/cmdline
/usr/sbin/saslauthd
1.2、cwd — 指向當前進程運行目錄的一個符號連結;
1.3、environ — 當前進程的環境變數列表,彼此間用Null 字元(NULL)隔開;變數用大寫字母表示,其值用小寫字母表示;
[[email protected] ~]# more /proc/2674/environ
TERM=linuxauthd
1.4、exe — 指向啟動當前進程的可執行檔(完整路徑)的符號連結,通過/proc/N/exe可以啟動當前進程的一個拷貝;
1.5、fd — 這是個目錄,包含當前進程開啟的每一個檔案的檔案描述符(file descriptor),這些檔案描述符是指向實際檔案的一個符號連結;
[[email protected] ~]# ll /proc/2674/fd
total 0
lrwx------ 1 root root 64 Feb 8 17:17 0 -> /dev/null
lrwx------ 1 root root 64 Feb 8 17:17 1 -> /dev/null
lrwx------ 1 root root 64 Feb 8 17:17 2 -> /dev/null
lrwx------ 1 root root 64 Feb 8 17:17 3 -> socket:[7990]
lrwx------ 1 root root 64 Feb 8 17:17 4 -> /var/run/saslauthd/saslauthd.pid
lrwx------ 1 root root 64 Feb 8 17:17 5 -> socket:[7991]
lrwx------ 1 root root 64 Feb 8 17:17 6 -> /var/run/saslauthd/mux.accept
1.6、limits — 當前進程所使用的每一個受限資源的軟式節流、硬限制和嵌入式管理單元;此檔案僅可由實際啟動當前進程的UID使用者讀取;(2.6.24以後的核心版本支援此功能);
1.7、maps — 當前進程關聯到的每個可執行檔和庫檔案在記憶體中的映射地區及其存取權限所組成的列表;
[[email protected] ~]# cat /proc/2674/maps
00110000-00239000 r-xp 00000000 08:02 130647 /lib/libcrypto.so.0.9.8e
00239000-0024c000 rwxp 00129000 08:02 130647 /lib/libcrypto.so.0.9.8e
0024c000-00250000 rwxp 0024c000 00:00 0
00250000-00252000 r-xp 00000000 08:02 130462 /lib/libdl-2.5.so
00252000-00253000 r-xp 00001000 08:02 130462 /lib/libdl-2.5.so
1.8、mem — 當前進程所佔用的記憶體空間,由open、read和lseek等系統調用使用,不能被使用者讀取;
1.9、root — 指向當前進程運行根目錄的符號連結;在Unix和Linux系統上,通常採用chroot命令使每個進程運行於獨立的根目錄;
1.10、stat — 當前進程的狀態資訊,包含一系統格式化後的資料列,可讀性差,通常由ps命令使用;
1.11、statm — 當前進程佔用記憶體的狀態資訊,通常以“頁面”(page)表示;
1.12、status — 與stat所提供資訊類似,但可讀性較好,如下所示,每行表示一個屬性資訊;其詳細介紹請參見 proc的man手冊頁;
[[email protected] ~]# more /proc/2674/status
Name: saslauthd
State: S (sleeping)
SleepAVG: 0%
Tgid: 2674
Pid: 2674
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmPeak: 5576 kB
VmSize: 5572 kB
VmLck: 0 kB
VmHWM: 696 kB
VmRSS: 696 kB
…………
1.13、task — 目錄檔案,包含由當前進程所啟動並執行每一個線程的相關資訊,每個線程的相關資訊檔均儲存在一個由線程號(tid)命名的目錄中,這類似於其內容類別似於每個進程目錄中的內容;(核心2.6版本以後支援此功能)
二、/proc目錄下常見的檔案介紹
2.1、/proc/apm
進階電源管理(APM)版本資訊及電池相關狀態資訊,通常由apm命令使用;
2.2、/proc/buddyinfo
用於診斷記憶體片段問題的相關資訊檔;
2.3、/proc/cmdline
在啟動時傳遞至核心的相關參數資訊,這些資訊通常由lilo或grub等啟動管理工具進行傳遞;
[[email protected] ~]# more /proc/cmdline
ro root=/dev/VolGroup00/LogVol00 rhgb quiet
2.4、/proc/cpuinfo
處理器的相關資訊的檔案;
2.5、/proc/crypto
系統上已安裝的核心使用的密碼演算法及每個演算法的詳細資料列表;
[[email protected] ~]# more /proc/crypto
name : crc32c
driver : crc32c-generic
module : kernel
priority : 0
type : digest
blocksize : 32
digestsize : 4
…………
2.6、/proc/devices
系統已經載入的所有塊裝置和字元裝置的資訊,包含主裝置號和裝置群組(與主裝置號對應的裝置類型)名;
[[email protected] ~]# more /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
…………
Block devices:
1 ramdisk
2 fd
8 sd
…………
2.7、/proc/diskstats
每塊磁碟裝置的磁碟I/O統計資訊列表;(核心2.5.69以後的版本支援此功能)
2.8、/proc/dma
每個正在使用且註冊的ISA DMA通道的資訊列表;
[[email protected] ~]# more /proc/dma
2: floppy
4: cascade
2.9、/proc/execdomains
核心當前支援的執行域(每種作業系統獨特“個性”)資訊列表;
[[email protected] ~]# more /proc/execdomains
0-0 Linux [kernel]
2.10、/proc/fb
幀緩衝裝置列表檔案,包含幀緩衝裝置的裝置號和相關驅動資訊;
2.11、/proc/filesystems
當前被核心支援的檔案系統類型列表檔案,被標示為nodev的檔案系統表示不需要塊裝置的支援;通常mount一個裝置時,如果沒有指定檔案系統類型將通過此檔案來決定其所需檔案系統的類型;
[[email protected] ~]# more /proc/filesystems
nodev sysfs
nodev rootfs
nodev proc
iso9660
ext3
…………
…………
2.12、/proc/interrupts
X86或X86_64體系架構系統上每個IRQ相關的中斷號列表;多路處理器平台上每個CPU對於每個I/O裝置均有自己的中斷號;
[[email protected] ~]# more /proc/interrupts
CPU0
0: 1305421 IO-APIC-edge timer
1: 61 IO-APIC-edge i8042
185: 1068 IO-APIC-level eth0
…………
2.13、/proc/iomem
每個物理裝置上的記憶體(RAM或者ROM)在系統記憶體中的映射資訊;
[[email protected] ~]# more /proc/iomem
00000000-0009f7ff : System RAM
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
…………
3.2.12. /proc/iomem
http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-iomem.html
This file shows you the current map of the system‘s memory for each physical device:
00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-07ffffff : System RAM
00100000-00291ba8 : Kernel code
00291ba9-002e09cb : Kernel data
e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus #01
e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP
e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP
e8000000-e8ffffff : PCI Bus #01
e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP
ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet]
ea000000-ea00007f : tulip ffff0000-ffffffff : reserved
The first column displays the memory registers used by each of the different types of memory. The second column lists the kind of memory located within those registers and displays which memory registers are used by the kernel within the system RAM or, if the network interface card has multiple Ethernet ports, the memory registers assigned for each port.
/opt/qtmarvell/mvqt # cat /proc/iomem
00000000-0fffffff : System RAM
0002b000-00554fff : Kernel text
00556000-005a22f3 : Kernel data
10000000-1fffffff : System RAM
e0000000-e7ffffff : PEX0 Memory
e0000000-e0003fff : 0000:00:01.0
e0004000-e0004fff : 0000:00:01.0
e8000000-efffffff : PEX1 Memory
f1012100-f10121ff : serial8250.0
f1012100-f101211f : serial
f1090000-f10903ff : mvsdio
f1090000-f10903ff : mvsdio
f10a0000-f10a3fff : mv88fx_snd.0
f10a0000-f10a3fff : mv88fx_snd
f10c0000-f10d0000 : dovefb.0 寄存器地址映射到這個
f10c0000-f10d0000 : dovefb_ovly.0
/opt/qtmarvell/mvqt # ./framebuffer
The framebuffer device was opened successfully.
Fixed screen info:
id: GFX Layer 0
smem_start: 0x12000000
smem_len: 33554432
type: 0
type_aux: 0
visual: 2
xpanstep: 1
ypanstep: 1
ywrapstep: 0
line_length: 2560
mmio_start: 0xf10c0000
mmio_len: 65537
2.14、/proc/ioports
當前正在使用且已經註冊過的與物理裝置進行通訊的輸入-輸出連接埠範圍資訊列表;如下面所示,第一列表示註冊的I/O連接埠範圍,其後表示相關的裝置;
[[email protected] ~]# less /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
…………
2.15、/proc/kallsyms
模組管理工具用來動態連結或綁定可裝載模組的符號定義,由核心輸出;(核心2.5.71以後的版本支援此功能);通常這個檔案中的資訊量相當大;
[[email protected] ~]# more /proc/kallsyms
c04011f0 T _stext
c04011f0 t run_init_process
c04011f0 T stext
…………
2.16、/proc/kcore
系統使用的實體記憶體,以ELF核心檔案(core file)格式儲存,其檔案大小為已使用的實體記憶體(RAM)加上4KB;這個檔案用來檢查核心資料結構的目前狀態,因此,通常由GBD通常調試工具使用,但不能使用檔案查看命令開啟此檔案;
2.17、/proc/kmsg
此檔案用來儲存由核心輸出的資訊,通常由/sbin/klogd或/bin/dmsg等程式使用,不要試圖使用查看命令開啟此檔案;
2.18、/proc/loadavg
儲存關於CPU和磁碟I/O的負載平均值,其前三列分別表示每1秒鐘、每5秒鐘及每15秒的負載平均值,類似於uptime命令輸出的相關資訊;第四列是由斜線隔開的兩個數值,前者表示當前正由核心調度的實體(進程和線程)的數目,後者表示系統當前存活的核心調度實體的數目;第五列表示此檔案被查看前最近一個由核心建立的進程的PID;
[[email protected] ~]# more /proc/loadavg
0.45 0.12 0.04 4/125 5549
[[email protected] ~]# uptime
06:00:54 up 1:06, 3 users, load average: 0.45, 0.12, 0.04
2.19、/proc/locks
儲存當前由核心鎖定的檔案的相關資訊,包含核心內部的調試資料;每個鎖定佔據一行,且具有一個惟一的編號;如下輸出資訊中每行的第二列表示當前鎖定使用的鎖定類別,POSIX表示目前較新類型的檔案鎖,由lockf系統調用產生,FLOCK是傳統的UNIX檔案鎖,由flock系統調用產生;第三列也通常由兩種類型,ADVISORY表示不允許其他使用者鎖定此檔案,但允許讀取,MANDATORY表示此檔案鎖定期間不允許其他使用者任何形式的訪問;
[[email protected] ~]# more /proc/locks
1: POSIX ADVISORY WRITE 4904 fd:00:4325393 0 EOF
2: POSIX ADVISORY WRITE 4550 fd:00:2066539 0 EOF
3: FLOCK ADVISORY WRITE 4497 fd:00:2066533 0 EOF
2.20、/proc/mdstat
儲存RAID相關的多塊磁碟的目前狀態資訊,在沒有使用RAID機器上,其顯示為如下狀態:
[[email protected] ~]# less /proc/mdstat
Personalities :
unused devices: <none>
2.21、/proc/meminfo
系統中關於當前記憶體的利用狀況等的資訊,常由free命令使用;可以使用檔案查看命令直接讀取此檔案,其內容顯示為兩列,前者為統計屬性,後者為對應的值;
[[email protected] ~]# less /proc/meminfo
MemTotal: 515492 kB
MemFree: 8452 kB
Buffers: 19724 kB
Cached: 376400 kB
SwapCached: 4 kB
…………
2.22、/proc/mounts
在核心2.4.29版本以前,此檔案的內容為系統當前掛載的所有檔案系統,在2.4.19以後的核心中引進了每個進程使用獨立掛載名稱空間的方式,此檔案則隨之變成了指向/proc/self/mounts(每個進程自身掛載名稱空間中的所有掛載點列表)檔案的符號連結;/proc/self是一個獨特的目錄,後文中會對此目錄進行介紹;
[[email protected] ~]# ll /proc |grep mounts
lrwxrwxrwx 1 root root 11 Feb 8 06:43 mounts -> self/mounts
如下所示,其中第一列表示掛載的裝置,第二列表示在目前的目錄樹中的掛載點,第三點表示當前檔案系統的類型,第四列表示掛載屬性(ro或者rw),第五列和第六列用來匹配/etc/mtab檔案中的轉儲(dump)屬性;
[[email protected] ~]# more /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
…………
2.23、/proc/modules
當前裝入核心的所有模組名稱列表,可以由lsmod命令使用,也可以直接查看;如下所示,其中第一列表示模組名,第二列表示此模組佔用記憶體空間大小,第三列表示此模組有多少執行個體被裝入,第四列表示此模組依賴於其它哪些模組,第五列表示此模組的裝載狀態(Live:已經裝入;Loading:正在裝入;Unloading:正在卸載),第六列表示此模組在核心記憶體(kernel memory)中的位移量;
[[email protected] ~]# more /proc/modules
autofs4 24517 2 - Live 0xe09f7000
hidp 23105 2 - Live 0xe0a06000
rfcomm 42457 0 - Live 0xe0ab3000
l2cap 29505 10 hidp,rfcomm, Live 0xe0aaa000
…………
2.24、/proc/partitions
塊裝置每個分區的主裝置號(major)和次裝置號(minor)等資訊,同時包括每個分區所包含的塊(block)數目(如下面輸出中第三列所示);
[[email protected] ~]# more /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 104391 sda1
8 2 6907950 sda2
8 3 5630782 sda3
8 4 1 sda4
8 5 3582463 sda5
2.25、/proc/pci
核心初始化時發現的所有PCI裝置及其配置資訊列表,其配置資訊多為某PCI裝置相關IRQ資訊,可讀性不高,可以用“/sbin/lspci –vb”命令獲得較易理解的相關資訊;在2.6核心以後,此檔案已為/proc/bus/pci目錄及其下的檔案代替;
2.26、/proc/slabinfo
在核心中頻繁使用的對象(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo檔案列出了這些對象相關slap的資訊;詳情可以參見核心文檔中slapinfo的手冊頁;
[[email protected] ~]# more /proc/slabinfo
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <ac
tive_slabs> <num_slabs> <sharedavail>
rpc_buffers 8 8 2048 2 1 : tunables 24 12 8 : slabdata 4 4 0
rpc_tasks 8 20 192 20 1 : tunables 120 60 8 : slabdata 1 1 0
rpc_inode_cache 6 9 448 9 1 : tunables 54 27 8 : slabdata 1 1 0
…………
…………
…………
2.27、/proc/stat
即時追蹤自系統上次啟動以來的多種統計資訊;如下所示,其中,
“cpu”行後的八個值分別表示以1/100(jiffies)秒為單位的統計值(包括系統運行於使用者模式、低優先順序使用者模式,運系統模式、空閑模式、I/O等待模式的時間等);
“intr”行給出中斷的資訊,第一個為自系統啟動以來,發生的所有的中斷的次數;然後每個數對應一個特定的中斷自系統啟動以來所發生的次數;
“ctxt”給出了自系統啟動以來CPU發生的上下文交換的次數。
“btime”給出了從系統啟動到現在為止的時間,單位為秒;
“processes (total_forks) 自系統啟動以來所建立的任務的個數目;
“procs_running”:當前運行隊列的任務的數目;
“procs_blocked”:當前被阻塞的任務的數目;
[[email protected] ~]# more /proc/stat
cpu 2751 26 5771 266413 2555 99 411 0
cpu0 2751 26 5771 266413 2555 99 411 0
intr 2810179 2780489 67 0 3 3 0 5 0 1 0 0 0 1707 0 0 9620 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 5504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12781 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
ctxt 427300
btime 1234084100
processes 3491
procs_running 1
procs_blocked 0
2.28、/proc/swaps
當前系統上的交換分區及其空間利用資訊,如果有多個交換分區的話,則會每個交換分區的資訊分別儲存於/proc/swap目錄中的單獨檔案中,而其優先順序數字越低,被使用到的可能性越大;下面是作者系統中只有一個交換分區時的輸出資訊;
[root[email protected] ~]# more /proc/swaps
Filename Type Size Used Priority
/dev/sda8 partition 642560 0 -1
2.29、/proc/uptime
系統上次啟動以來的已耗用時間,如下所示,其第一個數字表示系統已耗用時間,第二個數字表示系統空閑時間,單位是秒;
[[email protected] ~]# more /proc/uptime
3809.86 3714.13
2.30、/proc/version
當前系統啟動並執行核心版本號碼,在作者的RHEL5.3上還會顯示系統安裝的gcc版本,如下所示;
[[email protected] ~]# more /proc/version
Linux version 2.6.18-128.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Dec 17 11:42:39 EST 2008
2.31、/proc/vmstat
當前系統虛擬記憶體的多種統計資料,資訊量可能會比較大,這因系統而有所不同,可讀性較好;下面為作者機器上輸出資訊的一個片段;(2.6以後的核心支援此檔案)
[[email protected] ~]# more /proc/vmstat
nr_anon_pages 22270
nr_mapped 8542
nr_file_pages 47706
nr_slab 4720
nr_page_table_pages 897
nr_dirty 21
nr_writeback 0
…………
2.32、/proc/zoneinfo
記憶體地區(zone)的詳細資料列表,資訊量較大,下面列出的是一個輸出片段:
[[email protected] ~]# more /proc/zoneinfo
Node 0, zone DMA
pages free 1208
min 28
low 35
high 42
active 439
inactive 1139
scanned 0 (a: 7 i: 30)
spanned 4096
present 4096
nr_anon_pages 192
nr_mapped 141
nr_file_pages 1385
nr_slab 253
nr_page_table_pages 2
nr_dirty 523
nr_writeback 0
nr_unstable 0
nr_bounce 0
protection: (0, 0, 296, 296)
pagesets
all_unreclaimable: 0
prev_priority: 12
start_pfn: 0
…………
三、/proc/sys目錄詳解
與 /proc下其它檔案的“唯讀”屬性不同的是,管理員可對/proc/sys子目錄中的許多檔案內容進行修改以更改核心的運行特性,事先可以使用“ls -l”命令查看某檔案是否“可寫入”。寫入操作通常使用類似於“echo DATA > /path/to/your/filename”的格式進行。需要注意的是,即使檔案可寫,其一般也不可以使用編輯器進行編輯。
3.1、/proc/sys/debug 子目錄
此目錄通常是一空目錄;
3.2、/proc/sys/dev 子目錄
為系統上特殊裝置提供參數資訊檔的目錄,其不同裝置的資訊檔分別儲存於不同的子目錄中,如大多數系統上都會具有的/proc/sys/dev /cdrom和/proc/sys/dev/raid(如果核心編譯時間開啟了支援raid的功能) 目錄,其記憶體儲的通常是系統上cdrom和raid的相關參數資訊檔。
[轉]深入理解/proc目錄