<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    深入理解linux系統下proc文件系統內容

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    http://www.itshanghai.net/technology/2009/0209/article_238.html

      另外,可以參考這個http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html
    • 內容摘要:Linux系統上的/proc目錄是一種文件系統,即proc文件系統。
    Linux系統上的/proc目錄是一種文件系統,即proc文件系統。與其它常見的文件系統不同的是,/proc是一種偽文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,用戶可以通過這些文件查看有關系統硬件及當前正在運行進程的信息,甚至可以通過更改其中某些文件來改變內核的運行狀態。 

    基于/proc文件系統如上所述的特殊性,其內的文件也常被稱作虛擬文件,并具有一些獨特的特點。例如,其中有些文件雖然使用查看命令查看時會返回大量信息,但文件本身的大小卻會顯示為0字節。此外,這些特殊文件中大多數文件的時間及日期屬性通常為當前系統時間和日期,這跟它們隨時會被刷新(存儲于RAM中)有關。 

    為了查看及使用上的方便,這些文件通常會按照相關性進行分類存儲于不同的目錄甚至子目錄中,如/proc/scsi目錄中存儲的就是當前系統上所有SCSI設備的相關信息,/proc/N中存儲的則是系統當前正在運行的進程的相關信息,其中N為正在運行的進程(可以想象得到,在某進程結束后其相關目錄則會消失)。 

    大多數虛擬文件可以使用文件查看命令如cat、more或者less進行查看,有些文件信息表述的內容可以一目了然,但也有文件的信息卻不怎么具有可讀性。不過,這些可讀性較差的文件在使用一些命令如apm、free、lspci或top查看時卻可以有著不錯的表現。 


    一、        進程目錄中的常見文件介紹 

    /proc目錄中包含許多以數字命名的子目錄,這些數字表示系統當前正在運行進程的進程號,里面包含對應進程相關的多個信息文件。 

    [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目錄中一些進程相關的目錄,每個目錄中是當程本身相關信息的文件。下面是作者系統(RHEL5.3)上運行的一個PID為2674的進程saslauthd的相關文件,其中有些文件是每個進程都會具有的,后文會對這些常見文件做出說明。 

    [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 — 啟動當前進程的完整命令,但僵尸進程目錄中的此文件不包含任何信息; 
    [root@rhel5 ~]# more /proc/2674/cmdline 
    /usr/sbin/saslauthd 

    1.2、cwd — 指向當前進程運行目錄的一個符號鏈接; 

    1.3、environ — 當前進程的環境變量列表,彼此間用空字符(NULL)隔開;變量用大寫字母表示,其值用小寫字母表示; 
    [root@rhel5 ~]# more /proc/2674/environ 
    TERM=linuxauthd 

    1.4、exe — 指向啟動當前進程的可執行文件(完整路徑)的符號鏈接,通過/proc/N/exe可以啟動當前進程的一個拷貝; 

    1.5、fd — 這是個目錄,包含當前進程打開的每一個文件的文件描述符(file descriptor),這些文件描述符是指向實際文件的一個符號鏈接; 
    [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 — 當前進程所使用的每一個受限資源的軟限制、硬限制和管理單元;此文件僅可由實際啟動當前進程的UID用戶讀取;(2.6.24以后的內核版本支持此功能); 

    1.7、maps — 當前進程關聯到的每個可執行文件和庫文件在內存中的映射區域及其訪問權限所組成的列表; 
    [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 — 當前進程所占用的內存空間,由open、read和lseek等系統調用使用,不能被用戶讀取; 

    1.9、root — 指向當前進程運行根目錄的符號鏈接;在Unix和Linux系統上,通常采用chroot命令使每個進程運行于獨立的根目錄; 

    1.10、stat — 當前進程的狀態信息,包含一系統格式化后的數據列,可讀性差,通常由ps命令使用; 

    1.11、statm — 當前進程占用內存的狀態信息,通常以“頁面”(page)表示; 

    1.12、status — 與stat所提供信息類似,但可讀性較好,如下所示,每行表示一個屬性信息;其詳細介紹請參見 proc的man手冊頁; 
    [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 — 目錄文件,包含由當前進程所運行的每一個線程的相關信息,每個線程的相關信息文件均保存在一個由線程號(tid)命名的目錄中,這類似于其內容類似于每個進程目錄中的內容;(內核2.6版本以后支持此功能) 

    二、/proc目錄下常見的文件介紹 

    2.1、/proc/apm 
    高級電源管理(APM)版本信息及電池相關狀態信息,通常由apm命令使用; 

    2.2、/proc/buddyinfo 
    用于診斷內存碎片問題的相關信息文件; 

    2.3、/proc/cmdline 
    在啟動時傳遞至內核的相關參數信息,這些信息通常由lilo或grub等啟動管理工具進行傳遞; 
    [root@rhel5 ~]# more /proc/cmdline 
    ro root=/dev/VolGroup00/LogVol00 rhgb quiet 


    2.4、/proc/cpuinfo 
    處理器的相關信息的文件; 

    2.5、/proc/crypto 
    系統上已安裝的內核使用的密碼算法及每個算法的詳細信息列表; 
    [root@rhel5 ~]# more /proc/crypto 
    name         : crc32c 
    driver       : crc32c-generic 
    module       : kernel 
    priority     : 0 
    type         : digest 
    blocksize    : 32 
    digestsize   : 4 
    …………


    2.6、/proc/devices 
    系統已經加載的所有塊設備和字符設備的信息,包含主設備號和設備組(與主設備號對應的設備類型)名; 
    [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 
    每塊磁盤設備的磁盤I/O統計信息列表;(內核2.5.69以后的版本支持此功能) 

    2.8、/proc/dma 
    每個正在使用且注冊的ISA DMA通道的信息列表; 
    [root@rhel5 ~]# more /proc/dma 
    2: floppy 
    4: cascade 


    2.9、/proc/execdomains 
    內核當前支持的執行域(每種操作系統獨特“個性”)信息列表; 
    [root@rhel5 ~]# more /proc/execdomains 
    0-0     Linux                   [kernel] 


    2.10、/proc/fb 
    幀緩沖設備列表文件,包含幀緩沖設備的設備號和相關驅動信息; 

    2.11、/proc/filesystems 
    當前被內核支持的文件系統類型列表文件,被標示為nodev的文件系統表示不需要塊設備的支持;通常mount一個設備時,如果沒有指定文件系統類型將通過此文件來決定其所需文件系統的類型; 
    [root@rhel5 ~]# more /proc/filesystems 
    nodev   sysfs 
    nodev   rootfs 
    nodev   proc 
            iso9660 
            ext3 
    ………… 
    ………… 


    2.12、/proc/interrupts 
    X86或X86_64體系架構系統上每個IRQ相關的中斷號列表;多路處理器平臺上每個CPU對于每個I/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 
    每個物理設備上的記憶體(RAM或者ROM)在系統內存中的映射信息; 
    [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  寄存器地址映射到這個 
      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端口范圍,其后表示相關的設備; 
    [root@rhel5 ~]# 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以后的版本支持此功能);通常這個文件中的信息量相當大; 
    [root@rhel5 ~]# 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; 
    [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 
    保存當前由內核鎖定的文件的相關信息,包含內核內部的調試數據;每個鎖定占據一行,且具有一個惟一的編號;如下輸出信息中每行的第二列表示當前鎖定使用的鎖定類別,POSIX表示目前較新類型的文件鎖,由lockf系統調用產生,FLOCK是傳統的UNIX文件鎖,由flock系統調用產生;第三列也通常由兩種類型,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相關的多塊磁盤的當前狀態信息,在沒有使用RAID機器上,其顯示為如下狀態: 
    [root@rhel5 ~]# less /proc/mdstat 
    Personalities : 
    unused devices: <none> 


    2.21、/proc/meminfo 
    系統中關于當前內存的利用狀況等的信息,常由free命令使用;可以使用文件查看命令直接讀取此文件,其內容顯示為兩列,前者為統計屬性,后者為對應的值; 
    [root@rhel5 ~]# 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是一個獨特的目錄,后文中會對此目錄進行介紹; 
    [root@rhel5 ~]# ll /proc |grep mounts 
    lrwxrwxrwx  1 root      root             11 Feb  8 06:43 mounts -> self/mounts 


    如下所示,其中第一列表示掛載的設備,第二列表示在當前目錄樹中的掛載點,第三點表示當前文件系統的類型,第四列表示掛載屬性(ro或者rw),第五列和第六列用來匹配/etc/mtab文件中的轉儲(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 
    當前裝入內核的所有模塊名稱列表,可以由lsmod命令使用,也可以直接查看;如下所示,其中第一列表示模塊名,第二列表示此模塊占用內存空間大小,第三列表示此模塊有多少實例被裝入,第四列表示此模塊依賴于其它哪些模塊,第五列表示此模塊的裝載狀態(Live:已經裝入;Loading:正在裝入;Unloading:正在卸載),第六列表示此模塊在內核內存(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 
    塊設備每個分區的主設備號(major)和次設備號(minor)等信息,同時包括每個分區所包含的塊(block)數目(如下面輸出中第三列所示); 
    [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 
    內核初始化時發現的所有PCI設備及其配置信息列表,其配置信息多為某PCI設備相關IRQ信息,可讀性不高,可以用“/sbin/lspci –vb”命令獲得較易理解的相關信息;在2.6內核以后,此文件已為/proc/bus/pci目錄及其下的文件代替; 

    2.26、/proc/slabinfo 
    在內核中頻繁使用的對象(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo文件列出了這些對象相關slap的信息;詳情可以參見內核文檔中slapinfo的手冊頁; 
    [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 
    實時追蹤自系統上次啟動以來的多種統計信息;如下所示,其中, 
    “cpu”行后的八個值分別表示以1/100(jiffies)秒為單位的統計值(包括系統運行于用戶模式、低優先級用戶模式,運系統模式、空閑模式、I/O等待模式的時間等); 
    “intr”行給出中斷的信息,第一個為自系統啟動以來,發生的所有的中斷的次數;然后每個數對應一個特定的中斷自系統啟動以來所發生的次數; 
    “ctxt”給出了自系統啟動以來CPU發生的上下文交換的次數。 
    “btime”給出了從系統啟動到現在為止的時間,單位為秒; 
    “processes (total_forks) 自系統啟動以來所創建的任務的個數目; 
    “procs_running”:當前運行隊列的任務的數目; 
    “procs_blocked”:當前被阻塞的任務的數目; 
    [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 
    當前系統上的交換分區及其空間利用信息,如果有多個交換分區的話,則會每個交換分區的信息分別存儲于/proc/swap目錄中的單獨文件中,而其優先級數字越低,被使用到的可能性越大;下面是作者系統中只有一個交換分區時的輸出信息; 
    [root@rhel5 ~]# more /proc/swaps 
    Filename                                Type            Size    Used    Priority 
    /dev/sda8                               partition       642560  0       -1 


    2.29、/proc/uptime 
    系統上次啟動以來的運行時間,如下所示,其第一個數字表示系統運行時間,第二個數字表示系統空閑時間,單位是秒; 
    [root@rhel5 ~]# more /proc/uptime 
    3809.86 3714.13 


    2.30、/proc/version 
    當前系統運行的內核版本號,在作者的RHEL5.3上還會顯示系統安裝的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 
    當前系統虛擬內存的多種統計數據,信息量可能會比較大,這因系統而有所不同,可讀性較好;下面為作者機器上輸出信息的一個片段;(2.6以后的內核支持此文件) 
    [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 
    內存區域(zone)的詳細信息列表,信息量較大,下面列出的是一個輸出片段: 
    [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下其它文件的“只讀”屬性不同的是,管理員可對/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的相關參數信息文件。 RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全