Linux 下的 /proc 文件系統(tǒng)中提供了許多有用的信息,除了基本的 CPU 使用率、版本號等,你甚至還可以在這里直接看到內(nèi)核的輸出。下面這張表,簡單列舉 /proc 中文件的含義:
| 文件名 | 含義 |
|---|---|
| num | 這些數(shù)字表示系統(tǒng)當(dāng)前正在運行進(jìn)程的進(jìn)程號,里面包含對應(yīng)進(jìn)程相關(guān)的多個信息文件。 |
| acpi | ACPI(高級配置和電源接口)支持操作系統(tǒng)設(shè)置和控制各個硬件部件。 ACPI 可以取代 PnP 和 APM。 它提供有關(guān)電池、AC 適 |
| 配器、溫度、風(fēng)扇和系統(tǒng)事件(例如 “合上機(jī)蓋” 或 “電池電量低”)的信息。 | |
| buddyinfo | 用于診斷內(nèi)存碎片問題的相關(guān)信息文件; |
| bus | |
| cgroups | cgroups(Control Groups) 是 linux 內(nèi)核提供的一種機(jī)制,這種機(jī)制可以根據(jù)需求把一系列系統(tǒng)任務(wù)及其子任務(wù)整合(或分隔)到按資源劃分等級的不同組內(nèi),從而為系統(tǒng)資源管理提供一個統(tǒng)一的框架。簡單說,cgroups 可以限制、記錄任務(wù)組所使用的物理資源。本質(zhì)上來說,cgroups 是內(nèi)核附加在程序上的一系列鉤子(hook),通過程序運行時對資源的調(diào)度觸發(fā)相應(yīng)的鉤子以達(dá)到資源追蹤和限制的目的。 |
| cmdline | 在啟動時傳遞至內(nèi)核的相關(guān)參數(shù)信息,這些信息通常由lilo或grub等啟動管理工具進(jìn)行傳遞; |
| consoles | |
| cpuinfo | 處理器的相關(guān)信息的文件; |
| crypto | 系統(tǒng)上已安裝的內(nèi)核使用的密碼算法及每個算法的詳細(xì)信息列表; |
| devices | 系統(tǒng)已經(jīng)加載的所有塊設(shè)備和字符設(shè)備的信息,包含主設(shè)備號和設(shè)備組(與主設(shè)備號對應(yīng)的設(shè)備類型)名; |
| diskstats | 每塊磁盤設(shè)備的磁盤I/O統(tǒng)計信息列表;(內(nèi)核2.5.69以后的版本支持此功能) |
| dma | 每個正在使用且注冊的ISA DMA通道的信息列表; |
| driver | 內(nèi)核當(dāng)前支持的執(zhí)行域(每種操作系統(tǒng)獨特“個性”)信息列表; |
| execdomains | Linux內(nèi)核當(dāng)前支持的execution domains |
| fb | 幀緩沖設(shè)備列表文件,包含幀緩沖設(shè)備的設(shè)備號和相關(guān)驅(qū)動信息; |
| filesystems | 當(dāng)前被內(nèi)核支持的文件系統(tǒng)類型列表文件,被標(biāo)示為nodev的文件系統(tǒng)表示不需要塊設(shè)備的支持;通常mount一個設(shè)備時,如果沒有指定文件系統(tǒng)類型將通過此文件來決定其所需文件系統(tǒng)的類型; |
| fs | |
| interrupts | X86或X86_64體系架構(gòu)系統(tǒng)上每個IRQ相關(guān)的中斷號列表;多路處理器平臺上每個CPU對于每個I/O設(shè)備均有自己的中斷號; |
| iomem | 每個物理設(shè)備上的記憶體(RAM或者ROM)在系統(tǒng)內(nèi)存中的映射信息; |
| ioports | 當(dāng)前正在使用且已經(jīng)注冊過的與物理設(shè)備進(jìn)行通訊的輸入-輸出端口范圍信息列表;如下面所示,第一列表示注冊的I/O端口范圍,其后表示相關(guān)的設(shè)備; |
| irq | 為每個注冊的irq創(chuàng)建一個以irq編號為名字的子目錄 |
| kallsyms | 內(nèi)核符號表(kernel symbol table)作用,變量名或者函數(shù)名組成,每一項是符號和地址的序?qū)Γ拖裼蛎蚷p地址 |
| kcore | 系統(tǒng)使用的物理內(nèi)存,以ELF核心文件(core file)格式存儲,其文件大小為已使用的物理內(nèi)存(RAM)加上4KB;這個文件用來檢查內(nèi)核數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài),因此,通常由GBD通常調(diào)試工具使用,但不能使用文件查看命令打開此文件; |
| keys | 如果一個進(jìn)程希望了解它可以查看哪些密鑰,它可以通過讀取 /proc/keys 獲得這些信息。在配置內(nèi)核時,必須啟用這個文件,因為它允許任何用戶列出密鑰數(shù)據(jù)庫。 |
| key-users | |
| kmsg | 此文件用來保存由內(nèi)核輸出的信息,通常由/sbin/klogd或/bin/dmsg等程序使用,不要試圖使用查看命令打開此文件; |
| kpagecount | |
| kpageflags | |
| loadavg | 保存關(guān)于CPU和磁盤I/O的負(fù)載平均值,其前三列分別表示每1秒鐘、每5秒鐘及每15秒的負(fù)載平均值,類似于uptime命令輸出的相關(guān)信息;第四列是由斜線隔開的兩個數(shù)值,前者表示當(dāng)前正由內(nèi)核調(diào)度的實體(進(jìn)程和線程)的數(shù)目,后者表示系統(tǒng)當(dāng)前存活的內(nèi)核調(diào)度實體的數(shù)目;第五列表示此文件被查看前最近一個由內(nèi)核創(chuàng)建的進(jìn)程的PID; |
| locks | 保存當(dāng)前由內(nèi)核鎖定的文件的相關(guān)信息,包含內(nèi)核內(nèi)部的調(diào)試數(shù)據(jù);每個鎖定占據(jù)一行,且具有一個惟一的編號;如下輸出信息中每行的第二列表示當(dāng)前鎖定使用的鎖定類別,POSIX表示目前較新類型的文件鎖,由lockf系統(tǒng)調(diào)用產(chǎn)生,F(xiàn)LOCK是傳統(tǒng)的UNIX文件鎖,由flock系統(tǒng)調(diào)用產(chǎn)生;第三列也通常由兩種類型,ADVISORY表示不允許其他用戶鎖定此文件,但允許讀取,MANDATORY表示此文件鎖定期間不允許其他用戶任何形式的訪問; |
| mdstat | 保存RAID相關(guān)的多塊磁盤的當(dāng)前狀態(tài)信息; |
| meminfo | 系統(tǒng)中關(guān)于當(dāng)前內(nèi)存的利用狀況等的信息,常由free命令使用;可以使用文件查看命令直接讀取此文件,其內(nèi)容顯示為兩列,前者為統(tǒng)計屬性,后者為對應(yīng)的值; |
| misc | |
| modules | 當(dāng)前裝入內(nèi)核的所有模塊名稱列表,可以由lsmod命令使用,也可以直接查看; |
| mounts -> self/mounts | 在內(nèi)核2.4.29版本以前,此文件的內(nèi)容為系統(tǒng)當(dāng)前掛載的所有文件系統(tǒng),在2.4.19以后的內(nèi)核中引進(jìn)了每個進(jìn)程使用獨立掛載名稱空間的方式,此文件則隨之變成了指向/proc/self/mounts(每個進(jìn)程自身掛載名稱空間中的所有掛載點列表)文件的符號鏈接;/proc/self是一個獨特的目錄,后文中會對此目錄進(jìn)行介紹; |
| mtrr | |
| net -> self/net | |
| pagetypeinfo | |
| partitions | 塊設(shè)備每個分區(qū)的主設(shè)備號(major)和次設(shè)備號(minor)等信息,同時包括每個分區(qū)所包含的塊(block)數(shù)目; |
| sched_debug | |
| schedstat | |
| scsi | |
| self -> 22742 | |
| slabinfo | 在內(nèi)核中頻繁使用的對象(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo文件列出了這些對象相關(guān)slap的信息;詳情可以參見內(nèi)核文檔中slapinfo的手冊頁; |
| softirqs | |
| stat | 實時追蹤自系統(tǒng)上次啟動以來的多種統(tǒng)計信息;如下所示,其中, |
“cpu”行后的八個值分別表示以1/100(jiffies)秒為單位的統(tǒng)計值(包括系統(tǒng)運行于用戶模式、低優(yōu)先級用戶模式,運系統(tǒng)模式、空閑模式、I/O等待模式的時間等);
“intr”行給出中斷的信息,第一個為自系統(tǒng)啟動以來,發(fā)生的所有的中斷的次數(shù);然后每個數(shù)對應(yīng)一個特定的中斷自系統(tǒng)啟動以來所發(fā)生的次數(shù);
“ctxt”給出了自系統(tǒng)啟動以來CPU發(fā)生的上下文交換的次數(shù)。
“btime”給出了從系統(tǒng)啟動到現(xiàn)在為止的時間,單位為秒;
“processes (total_forks) 自系統(tǒng)啟動以來所創(chuàng)建的任務(wù)的個數(shù)目;
“procs_running”:當(dāng)前運行隊列的任務(wù)的數(shù)目;
“procs_blocked”:當(dāng)前被阻塞的任務(wù)的數(shù)目; |
| swaps | 當(dāng)前系統(tǒng)上的交換分區(qū)及其空間利用信息,如果有多個交換分區(qū)的話,則會每個交換分區(qū)的信息分別存儲于/proc/swap目錄中的單獨文件中,而其優(yōu)先級數(shù)字越低,被使用到的可能性越大;下面是作者系統(tǒng)中只有一個交換分區(qū)時的輸出信息; |
| sys | 與 /proc下其它文件的“只讀”屬性不同的是,管理員可對/proc/sys子目錄中的許多文件內(nèi)容進(jìn)行修改以更改內(nèi)核的運行特性,事先可以使用“l(fā)s -l”命令查看某文件是否“可寫入”。寫入操作通常使用類似于“echo DATA > /path/to/your/filename”的格式進(jìn)行。需要注意的是,即使文件可寫,其一般也不可以使用編輯器進(jìn)行編輯。
/proc/sys/debug 子目錄
此目錄通常是一空目錄;
/proc/sys/dev 子目錄
為系統(tǒng)上特殊設(shè)備提供參數(shù)信息文件的目錄,其不同設(shè)備的信息文件分別存儲于不同的子目錄中,如大多數(shù)系統(tǒng)上都會具有的/proc/sys/dev /cdrom和/proc/sys/dev/raid(如果內(nèi)核編譯時開啟了支持raid的功能) 目錄,其內(nèi)存儲的通常是系統(tǒng)上cdrom和raid的相關(guān)參數(shù)信息文件。 |
| sysrq-trigger | |
| sysvipc | |
| timer_list | |
| timer_stats | |
| tty | |
| uptime | 系統(tǒng)上次啟動以來的運行時間,如下所示,其第一個數(shù)字表示系統(tǒng)運行時間,第二個數(shù)字表示系統(tǒng)空閑時間,單位是秒; |
| version | 當(dāng)前系統(tǒng)運行的內(nèi)核版本號,在作者的RHEL5.3上還會顯示系統(tǒng)安裝的gcc版本,如下所示; |
| vmallocinfo | |
| vmstat | 當(dāng)前系統(tǒng)虛擬內(nèi)存的多種統(tǒng)計數(shù)據(jù),信息量可能會比較大,這因系統(tǒng)而有所不同,可讀性較好;下面為作者機(jī)器上輸出信息的一個片段;(2.6以后的內(nèi)核支持此文件) |
| zoneinfo | 內(nèi)存區(qū)域(zone)的詳細(xì)信息列表,信息量較大 |
<a name="8nynb"></a>
參考文獻(xiàn)
- 深入理解linux系統(tǒng)下proc文件系統(tǒng)內(nèi)容
- 使用 /proc 文件系統(tǒng)來訪問 Linux 內(nèi)核的內(nèi)容
- /proc/acpi詳細(xì)介紹
- linux cgroups 簡介
- Linux之proc詳解
- /proc/irq和/proc/interrupts詳解
- 內(nèi)核符號表和kallsyms
- 管理密鑰的內(nèi)核 API
我的博客即將同步至騰訊云 + 社區(qū),邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=21yjpwt8mhhc0