深入理解linux系统下proc文件系统内容
另外,可以參考這個(gè)http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html
- 內(nèi)容摘要:Linux系統(tǒng)上的/proc目錄是一種文件系統(tǒng),即proc文件系統(tǒng)。?
Linux系統(tǒng)上的/proc目錄是一種文件系統(tǒng),即proc文件系統(tǒng)。與其它常見的文件系統(tǒng)不同的是,/proc是一種偽文件系統(tǒng)(也即虛擬文件系統(tǒng)),存儲(chǔ)的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件,用戶可以通過這些文件查看有關(guān)系統(tǒng)硬件及當(dāng)前正在運(yùn)行進(jìn)程的信息,甚至可以通過更改其中某些文件來改變內(nèi)核的運(yùn)行狀態(tài)。 ?
基于/proc文件系統(tǒng)如上所述的特殊性,其內(nèi)的文件也常被稱作虛擬文件,并具有一些獨(dú)特的特點(diǎn)。例如,其中有些文件雖然使用查看命令查看時(shí)會(huì)返回大量信息,但文件本身的大小卻會(huì)顯示為0字節(jié)。此外,這些特殊文件中大多數(shù)文件的時(shí)間及日期屬性通常為當(dāng)前系統(tǒng)時(shí)間和日期,這跟它們隨時(shí)會(huì)被刷新(存儲(chǔ)于RAM中)有關(guān)。 ?
為了查看及使用上的方便,這些文件通常會(huì)按照相關(guān)性進(jìn)行分類存儲(chǔ)于不同的目錄甚至子目錄中,如/proc/scsi目錄中存儲(chǔ)的就是當(dāng)前系統(tǒng)上所有SCSI設(shè)備的相關(guān)信息,/proc/N中存儲(chǔ)的則是系統(tǒng)當(dāng)前正在運(yùn)行的進(jìn)程的相關(guān)信息,其中N為正在運(yùn)行的進(jìn)程(可以想象得到,在某進(jìn)程結(jié)束后其相關(guān)目錄則會(huì)消失)。 ?
大多數(shù)虛擬文件可以使用文件查看命令如cat、more或者less進(jìn)行查看,有些文件信息表述的內(nèi)容可以一目了然,但也有文件的信息卻不怎么具有可讀性。不過,這些可讀性較差的文件在使用一些命令如apm、free、lspci或top查看時(shí)卻可以有著不錯(cuò)的表現(xiàn)。 ?
一、? ? ? ? 進(jìn)程目錄中的常見文件介紹 ?
/proc目錄中包含許多以數(shù)字命名的子目錄,這些數(shù)字表示系統(tǒng)當(dāng)前正在運(yùn)行進(jìn)程的進(jìn)程號(hào),里面包含對(duì)應(yīng)進(jìn)程相關(guān)的多個(gè)信息文件。 ?
[root@rhel5 ~]# 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目錄中一些進(jìn)程相關(guān)的目錄,每個(gè)目錄中是當(dāng)程本身相關(guān)信息的文件。下面是作者系統(tǒng)(RHEL5.3)上運(yùn)行的一個(gè)PID為2674的進(jìn)程saslauthd的相關(guān)文件,其中有些文件是每個(gè)進(jìn)程都會(huì)具有的,后文會(huì)對(duì)這些常見文件做出說明。 ?
[root@rhel5 ~]# 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 — 啟動(dòng)當(dāng)前進(jìn)程的完整命令,但僵尸進(jìn)程目錄中的此文件不包含任何信息; ?
[root@rhel5 ~]# more /proc/2674/cmdline ?
/usr/sbin/saslauthd ?
1.2、cwd — 指向當(dāng)前進(jìn)程運(yùn)行目錄的一個(gè)符號(hào)鏈接; ?
1.3、environ — 當(dāng)前進(jìn)程的環(huán)境變量列表,彼此間用空字符(NULL)隔開;變量用大寫字母表示,其值用小寫字母表示; ?
[root@rhel5 ~]# more /proc/2674/environ ?
TERM=linuxauthd ?
1.4、exe — 指向啟動(dòng)當(dāng)前進(jìn)程的可執(zhí)行文件(完整路徑)的符號(hào)鏈接,通過/proc/N/exe可以啟動(dòng)當(dāng)前進(jìn)程的一個(gè)拷貝; ?
1.5、fd — 這是個(gè)目錄,包含當(dāng)前進(jìn)程打開的每一個(gè)文件的文件描述符(file descriptor),這些文件描述符是指向?qū)嶋H文件的一個(gè)符號(hào)鏈接; ?
[root@rhel5 ~]# 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 — 當(dāng)前進(jìn)程所使用的每一個(gè)受限資源的軟限制、硬限制和管理單元;此文件僅可由實(shí)際啟動(dòng)當(dāng)前進(jìn)程的UID用戶讀取;(2.6.24以后的內(nèi)核版本支持此功能); ?
1.7、maps — 當(dāng)前進(jìn)程關(guān)聯(lián)到的每個(gè)可執(zhí)行文件和庫文件在內(nèi)存中的映射區(qū)域及其訪問權(quán)限所組成的列表; ?
[root@rhel5 ~]# 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 — 當(dāng)前進(jìn)程所占用的內(nèi)存空間,由open、read和lseek等系統(tǒng)調(diào)用使用,不能被用戶讀取; ?
1.9、root — 指向當(dāng)前進(jìn)程運(yùn)行根目錄的符號(hào)鏈接;在Unix和Linux系統(tǒng)上,通常采用chroot命令使每個(gè)進(jìn)程運(yùn)行于獨(dú)立的根目錄; ?
1.10、stat — 當(dāng)前進(jìn)程的狀態(tài)信息,包含一系統(tǒng)格式化后的數(shù)據(jù)列,可讀性差,通常由ps命令使用; ?
1.11、statm — 當(dāng)前進(jìn)程占用內(nèi)存的狀態(tài)信息,通常以“頁面”(page)表示; ?
1.12、status — 與stat所提供信息類似,但可讀性較好,如下所示,每行表示一個(gè)屬性信息;其詳細(xì)介紹請(qǐng)參見 proc的man手冊(cè)頁; ?
[root@rhel5 ~]# 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 — 目錄文件,包含由當(dāng)前進(jìn)程所運(yùn)行的每一個(gè)線程的相關(guān)信息,每個(gè)線程的相關(guān)信息文件均保存在一個(gè)由線程號(hào)(tid)命名的目錄中,這類似于其內(nèi)容類似于每個(gè)進(jìn)程目錄中的內(nèi)容;(內(nèi)核2.6版本以后支持此功能) ?
二、/proc目錄下常見的文件介紹 ?
2.1、/proc/apm ?
高級(jí)電源管理(APM)版本信息及電池相關(guān)狀態(tài)信息,通常由apm命令使用; ?
2.2、/proc/buddyinfo ?
用于診斷內(nèi)存碎片問題的相關(guān)信息文件; ?
2.3、/proc/cmdline ?
在啟動(dòng)時(shí)傳遞至內(nèi)核的相關(guān)參數(shù)信息,這些信息通常由lilo或grub等啟動(dòng)管理工具進(jìn)行傳遞; ?
[root@rhel5 ~]# more /proc/cmdline ?
ro root=/dev/VolGroup00/LogVol00 rhgb quiet ?
2.4、/proc/cpuinfo ?
處理器的相關(guān)信息的文件; ?
2.5、/proc/crypto ?
系統(tǒng)上已安裝的內(nèi)核使用的密碼算法及每個(gè)算法的詳細(xì)信息列表; ?
[root@rhel5 ~]# more /proc/crypto ?
name ? ? ? ? : crc32c ?
driver ? ? ? : crc32c-generic ?
module ? ? ? : kernel ?
priority ? ? : 0 ?
type ? ? ? ? : digest ?
blocksize? ? : 32 ?
digestsize ? : 4 ?
…………
2.6、/proc/devices ?
系統(tǒng)已經(jīng)加載的所有塊設(shè)備和字符設(shè)備的信息,包含主設(shè)備號(hào)和設(shè)備組(與主設(shè)備號(hào)對(duì)應(yīng)的設(shè)備類型)名; ?
[root@rhel5 ~]# 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 ?
每塊磁盤設(shè)備的磁盤I/O統(tǒng)計(jì)信息列表;(內(nèi)核2.5.69以后的版本支持此功能) ?
2.8、/proc/dma ?
每個(gè)正在使用且注冊(cè)的ISA DMA通道的信息列表; ?
[root@rhel5 ~]# more /proc/dma ?
2: floppy ?
4: cascade ?
2.9、/proc/execdomains ?
內(nèi)核當(dāng)前支持的執(zhí)行域(每種操作系統(tǒng)獨(dú)特“個(gè)性”)信息列表; ?
[root@rhel5 ~]# more /proc/execdomains ?
0-0 ? ? Linux ? ? ? ? ? ? ? ? ? [kernel] ?
2.10、/proc/fb ?
幀緩沖設(shè)備列表文件,包含幀緩沖設(shè)備的設(shè)備號(hào)和相關(guān)驅(qū)動(dòng)信息; ?
2.11、/proc/filesystems ?
當(dāng)前被內(nèi)核支持的文件系統(tǒng)類型列表文件,被標(biāo)示為nodev的文件系統(tǒng)表示不需要塊設(shè)備的支持;通常mount一個(gè)設(shè)備時(shí),如果沒有指定文件系統(tǒng)類型將通過此文件來決定其所需文件系統(tǒng)的類型; ?
[root@rhel5 ~]# more /proc/filesystems ?
nodev ? sysfs ?
nodev ? rootfs ?
nodev ? proc ?
? ? ? ? iso9660 ?
? ? ? ? ext3 ?
………… ?
………… ?
2.12、/proc/interrupts ?
X86或X86_64體系架構(gòu)系統(tǒng)上每個(gè)IRQ相關(guān)的中斷號(hào)列表;多路處理器平臺(tái)上每個(gè)CPU對(duì)于每個(gè)I/O設(shè)備均有自己的中斷號(hào); ?
[root@rhel5 ~]# 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 ?
每個(gè)物理設(shè)備上的記憶體(RAM或者ROM)在系統(tǒng)內(nèi)存中的映射信息; ?
[root@rhel5 ~]# 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? 寄存器地址映射到這個(gè)
? 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?
當(dāng)前正在使用且已經(jīng)注冊(cè)過的與物理設(shè)備進(jìn)行通訊的輸入-輸出端口范圍信息列表;如下面所示,第一列表示注冊(cè)的I/O端口范圍,其后表示相關(guān)的設(shè)備;?
[root@rhel5 ~]# less /proc/ioports?
0000-001f : dma1?
0020-0021 : pic1?
0040-0043 : timer0?
0050-0053 : timer1?
0060-006f : keyboard?
…………?
2.15、/proc/kallsyms?
模塊管理工具用來動(dòng)態(tài)鏈接或綁定可裝載模塊的符號(hào)定義,由內(nèi)核輸出;(內(nèi)核2.5.71以后的版本支持此功能);通常這個(gè)文件中的信息量相當(dāng)大;?
[root@rhel5 ~]# more /proc/kallsyms?
c04011f0 T _stext?
c04011f0 t run_init_process?
c04011f0 T stext?
? …………?
2.16、/proc/kcore?
系統(tǒng)使用的物理內(nèi)存,以ELF核心文件(core file)格式存儲(chǔ),其文件大小為已使用的物理內(nèi)存(RAM)加上4KB;這個(gè)文件用來檢查內(nèi)核數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài),因此,通常由GBD通常調(diào)試工具使用,但不能使用文件查看命令打開此文件;?
2.17、/proc/kmsg?
此文件用來保存由內(nèi)核輸出的信息,通常由/sbin/klogd或/bin/dmsg等程序使用,不要試圖使用查看命令打開此文件;?
2.18、/proc/loadavg?
保存關(guān)于CPU和磁盤I/O的負(fù)載平均值,其前三列分別表示每1秒鐘、每5秒鐘及每15秒的負(fù)載平均值,類似于uptime命令輸出的相關(guān)信息;第四列是由斜線隔開的兩個(gè)數(shù)值,前者表示當(dāng)前正由內(nèi)核調(diào)度的實(shí)體(進(jìn)程和線程)的數(shù)目,后者表示系統(tǒng)當(dāng)前存活的內(nèi)核調(diào)度實(shí)體的數(shù)目;第五列表示此文件被查看前最近一個(gè)由內(nèi)核創(chuàng)建的進(jìn)程的PID;?
[root@rhel5 ~]# more /proc/loadavg?
0.45 0.12 0.04 4/125 5549?
[root@rhel5 ~]# uptime?
06:00:54 up? 1:06,? 3 users,? load average: 0.45, 0.12, 0.04?
2.19、/proc/locks?
保存當(dāng)前由內(nèi)核鎖定的文件的相關(guān)信息,包含內(nèi)核內(nèi)部的調(diào)試數(shù)據(jù);每個(gè)鎖定占據(jù)一行,且具有一個(gè)惟一的編號(hào);如下輸出信息中每行的第二列表示當(dāng)前鎖定使用的鎖定類別,POSIX表示目前較新類型的文件鎖,由lockf系統(tǒng)調(diào)用產(chǎn)生,FLOCK是傳統(tǒng)的UNIX文件鎖,由flock系統(tǒng)調(diào)用產(chǎn)生;第三列也通常由兩種類型,ADVISORY表示不允許其他用戶鎖定此文件,但允許讀取,MANDATORY表示此文件鎖定期間不允許其他用戶任何形式的訪問;?
[root@rhel5 ~]# 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相關(guān)的多塊磁盤的當(dāng)前狀態(tài)信息,在沒有使用RAID機(jī)器上,其顯示為如下狀態(tài):?
[root@rhel5 ~]# less /proc/mdstat?
Personalities :?
unused devices: <none>?
2.21、/proc/meminfo?
系統(tǒng)中關(guān)于當(dāng)前內(nèi)存的利用狀況等的信息,常由free命令使用;可以使用文件查看命令直接讀取此文件,其內(nèi)容顯示為兩列,前者為統(tǒng)計(jì)屬性,后者為對(duì)應(yīng)的值;?
[root@rhel5 ~]# less /proc/meminfo?
MemTotal: ? ? ? 515492 kB?
MemFree:? ? ? ? ? 8452 kB?
Buffers: ? ? ? ? 19724 kB?
Cached: ? ? ? ? 376400 kB?
SwapCached:? ? ? ? ? 4 kB?
…………
2.22、/proc/mounts?
在內(nèi)核2.4.29版本以前,此文件的內(nèi)容為系統(tǒng)當(dāng)前掛載的所有文件系統(tǒng),在2.4.19以后的內(nèi)核中引進(jìn)了每個(gè)進(jìn)程使用獨(dú)立掛載名稱空間的方式,此文件則隨之變成了指向/proc/self/mounts(每個(gè)進(jìn)程自身掛載名稱空間中的所有掛載點(diǎn)列表)文件的符號(hào)鏈接;/proc/self是一個(gè)獨(dú)特的目錄,后文中會(huì)對(duì)此目錄進(jìn)行介紹;?
[root@rhel5 ~]# ll /proc |grep mounts?
lrwxrwxrwx? 1 root? ? ? root ? ? ? ? ? ? 11 Feb? 8 06:43 mounts -> self/mounts?
如下所示,其中第一列表示掛載的設(shè)備,第二列表示在當(dāng)前目錄樹中的掛載點(diǎn),第三點(diǎn)表示當(dāng)前文件系統(tǒng)的類型,第四列表示掛載屬性(ro或者rw),第五列和第六列用來匹配/etc/mtab文件中的轉(zhuǎn)儲(chǔ)(dump)屬性;?
[root@rhel5 ~]# 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?
當(dāng)前裝入內(nèi)核的所有模塊名稱列表,可以由lsmod命令使用,也可以直接查看;如下所示,其中第一列表示模塊名,第二列表示此模塊占用內(nèi)存空間大小,第三列表示此模塊有多少實(shí)例被裝入,第四列表示此模塊依賴于其它哪些模塊,第五列表示此模塊的裝載狀態(tài)(Live:已經(jīng)裝入;Loading:正在裝入;Unloading:正在卸載),第六列表示此模塊在內(nèi)核內(nèi)存(kernel memory)中的偏移量;?
[root@rhel5 ~]# 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?
塊設(shè)備每個(gè)分區(qū)的主設(shè)備號(hào)(major)和次設(shè)備號(hào)(minor)等信息,同時(shí)包括每個(gè)分區(qū)所包含的塊(block)數(shù)目(如下面輸出中第三列所示);?
[root@rhel5 ~]# 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?
內(nèi)核初始化時(shí)發(fā)現(xiàn)的所有PCI設(shè)備及其配置信息列表,其配置信息多為某PCI設(shè)備相關(guān)IRQ信息,可讀性不高,可以用“/sbin/lspci –vb”命令獲得較易理解的相關(guān)信息;在2.6內(nèi)核以后,此文件已為/proc/bus/pci目錄及其下的文件代替;?
2.26、/proc/slabinfo?
在內(nèi)核中頻繁使用的對(duì)象(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo文件列出了這些對(duì)象相關(guān)slap的信息;詳情可以參見內(nèi)核文檔中slapinfo的手冊(cè)頁;?
[root@rhel5 ~]# 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?
實(shí)時(shí)追蹤自系統(tǒng)上次啟動(dòng)以來的多種統(tǒng)計(jì)信息;如下所示,其中,?
“cpu”行后的八個(gè)值分別表示以1/100(jiffies)秒為單位的統(tǒng)計(jì)值(包括系統(tǒng)運(yùn)行于用戶模式、低優(yōu)先級(jí)用戶模式,運(yùn)系統(tǒng)模式、空閑模式、I/O等待模式的時(shí)間等);?
“intr”行給出中斷的信息,第一個(gè)為自系統(tǒng)啟動(dòng)以來,發(fā)生的所有的中斷的次數(shù);然后每個(gè)數(shù)對(duì)應(yīng)一個(gè)特定的中斷自系統(tǒng)啟動(dòng)以來所發(fā)生的次數(shù);?
“ctxt”給出了自系統(tǒng)啟動(dòng)以來CPU發(fā)生的上下文交換的次數(shù)。?
“btime”給出了從系統(tǒng)啟動(dòng)到現(xiàn)在為止的時(shí)間,單位為秒;?
“processes (total_forks) 自系統(tǒng)啟動(dòng)以來所創(chuàng)建的任務(wù)的個(gè)數(shù)目;?
“procs_running”:當(dāng)前運(yùn)行隊(duì)列的任務(wù)的數(shù)目;?
“procs_blocked”:當(dāng)前被阻塞的任務(wù)的數(shù)目;?
[root@rhel5 ~]# 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?
當(dāng)前系統(tǒng)上的交換分區(qū)及其空間利用信息,如果有多個(gè)交換分區(qū)的話,則會(huì)每個(gè)交換分區(qū)的信息分別存儲(chǔ)于/proc/swap目錄中的單獨(dú)文件中,而其優(yōu)先級(jí)數(shù)字越低,被使用到的可能性越大;下面是作者系統(tǒng)中只有一個(gè)交換分區(qū)時(shí)的輸出信息;?
[root@rhel5 ~]# more /proc/swaps?
Filename? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Type? ? ? ? ? ? Size? ? Used? ? Priority?
/dev/sda8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? partition ? ? ? 642560? 0 ? ? ? -1?
2.29、/proc/uptime?
系統(tǒng)上次啟動(dòng)以來的運(yùn)行時(shí)間,如下所示,其第一個(gè)數(shù)字表示系統(tǒng)運(yùn)行時(shí)間,第二個(gè)數(shù)字表示系統(tǒng)空閑時(shí)間,單位是秒;?
[root@rhel5 ~]# more /proc/uptime?
3809.86 3714.13?
2.30、/proc/version?
當(dāng)前系統(tǒng)運(yùn)行的內(nèi)核版本號(hào),在作者的RHEL5.3上還會(huì)顯示系統(tǒng)安裝的gcc版本,如下所示;?
[root@rhel5 ~]# more /proc/version?
Linux version 2.6.18-128.el5 (mockbuild@hs20-bc1-5.build.redhat.com) (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?
當(dāng)前系統(tǒng)虛擬內(nèi)存的多種統(tǒng)計(jì)數(shù)據(jù),信息量可能會(huì)比較大,這因系統(tǒng)而有所不同,可讀性較好;下面為作者機(jī)器上輸出信息的一個(gè)片段;(2.6以后的內(nèi)核支持此文件)?
[root@rhel5 ~]# 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?
內(nèi)存區(qū)域(zone)的詳細(xì)信息列表,信息量較大,下面列出的是一個(gè)輸出片段:?
[root@rhel5 ~]# 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下其它文件的“只讀”屬性不同的是,管理員可對(duì)/proc/sys子目錄中的許多文件內(nèi)容進(jìn)行修改以更改內(nèi)核的運(yùn)行特性,事先可以使用“l(fā)s -l”命令查看某文件是否“可寫入”。寫入操作通常使用類似于“echo? DATA > /path/to/your/filename”的格式進(jìn)行。需要注意的是,即使文件可寫,其一般也不可以使用編輯器進(jìn)行編輯。?
3.1、/proc/sys/debug 子目錄?
此目錄通常是一空目錄;?
3.2、/proc/sys/dev 子目錄?
為系統(tǒng)上特殊設(shè)備提供參數(shù)信息文件的目錄,其不同設(shè)備的信息文件分別存儲(chǔ)于不同的子目錄中,如大多數(shù)系統(tǒng)上都會(huì)具有的/proc/sys/dev /cdrom和/proc/sys/dev/raid(如果內(nèi)核編譯時(shí)開啟了支持raid的功能) 目錄,其內(nèi)存儲(chǔ)的通常是系統(tǒng)上cdrom和raid的相關(guān)參數(shù)信息文件。
總結(jié)
以上是生活随笔為你收集整理的深入理解linux系统下proc文件系统内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙系统圆点是指什么意思
- 下一篇: linux下cron定时任务的总结