Linux-/proc目录简介
Linux /proc目錄簡介
1.簡單了解
以文件系統的方式為訪問系統內核數據的操作提供接口
由linux內核提供:通過/proc文件系統,在運行時訪問內核內部數據結構、改變內核設置的一種機制
proc文件系統是一個虛擬文件系統,只存在于內存當中,而不占用外存空間。
用戶和應用程序可以通過proc得到系統的信息,并可以改變內核的某些參數。由于系統的信息是動態改變的(如進程),所以用戶和系統程序讀取proc時,proc文件系統是動態從內核讀出所需信息并提交的。
2.proc下面的文件或子文件夾
proc下面的文件或文件夾取決于內核配置和裝載的模塊。比較重要的三個目錄如下:
sys:可寫,通過它來訪問或修改內核參數
net與scsi:依賴于內核配置,若系統不支持scsi,則scsi目錄不存在
還有一些以數字命名的目錄,屬于進程目錄。系統中當前運行的每一個進程都有對應的一個目錄在/proc下,以進程的PID號為目錄號,他們是讀取進程信息的接口。
self目錄就是讀取進程本身的信息接口,是一個link,你可以去/proc目錄下看一下,你會發現self軟鏈的進程pid會變動。說明當前正在獲取此pid的信息。
# ll self lrwxrwxrwx 1 root root 0 8月 23 09:55 self -> 18728/ # ll self lrwxrwxrwx 1 root root 0 8月 23 09:55 self -> 18729/ # ll self lrwxrwxrwx 1 root root 0 8月 23 09:55 self -> 18730/ # ll self lrwxrwxrwx 1 root root 0 8月 23 09:55 self -> 18731/再來看看其他目錄吧
buddyinfo:每個內存區中的每個order有多少塊可用,和內存碎片問題有關
cmdline:啟動時傳遞給kernel的參數信息
# more cmdline BOOT_IMAGE=/boot/vmlinuz-4.2.0-27-generic.efi.signed root=UUID=396873ff-c6f0-44ba-9c8f-a40e5e1c5c67 ro quiet splash vt.handoff=7cpuinfo: cpu的信息
crypto:內核使用的所有已安裝的加密密碼及細節
devices:已經加載的設備并分類
dma:已注冊使用的ISA DMA頻道列表
execdomains:Linux內核當前支持的execution domains
fb:幀緩沖設備列表,包括數量和控制它的驅動
filesystems:內核當前支持的文件系統類型
interrupts:X86架構中每個IRQ中斷數
iomem:每個物理設備當前在系統內存中的映射
ioports:一個設備輸入輸出所使用的注冊端口范圍
kcore:代表系統的物理內存,存儲為核心文件格式,里面顯示的是字節數,等于RAM大小加上4kb
kmsg:記錄內核生成的信息,可以通過/sbin/klogd或/bin/dmesg來處理
loadavg:根據過去一段時間內cpu和io的狀態得出的負載狀態,與uptime命令有關
# more loadavg 0.02 0.09 0.16 1/800 19755 root@ruanyang-HP-ProDesk-680-G2-MT:/proc# uptime 14:48:59 up 10 days, 4:53, 11 users, load average: 0.02, 0.09, 0.16 root@ruanyang-HP-ProDesk-680-G2-MT:/proc# ps -ef | grep 19755 root 19758 32401 0 14:49 pts/42 00:00:00 grep --color=auto 19755loadavg文件里面一共五個值,前三個值分別是前1分鐘、5分鐘、15分鐘內的平均負載,第四個數表示當前運行的進程數與總進程數的比例,最后一個數字表示的是最近運行的進程id
- 系統平均負載:在特定時間間隔內運行隊列中的平均進程數。如果一個進程滿足以下條件則其就會位于運行隊列中:
- 沒有在等待I/O操作的結果
- 沒有主動進入等待狀態(就是沒有調用wait)
- 沒有被停止(eg:等待終止)
一般來講,每個CPU內核當前活動進程數不大于3,則系統運行表現良好,這里說的是每個CPU內核,就是說如果主機是四核CPU的話,就是12個,當大于12的時候,系統負載就會很嚴重。最直接的表現就是特別慢,甚至出現卡死的情況。
locks:內核鎖住的文件列表
mdstat:多硬盤,RAID配置信息
meminfo:RAM使用的相關信息
misc:其他的主要設備(設備號為10)上注冊的驅動
modules:所有加載到內核的模塊列表
mounts:系統中使用的所有掛載
mtrr:系統使用的Memory Type Range Registers (MTRRs)
partitions:分區中的塊分配信息
pci:系統中的PCI設備列表
slabinfo:系統中所有活動的slab緩存信息
stat:所有的CPU活動信息
sysrq-trigger:
見博客sysrq-trigger的詳解
參考文獻:
linux中uptime命令查看linux系統負載
轉載于:https://www.cnblogs.com/cherishry/p/5885173.html
總結
以上是生活随笔為你收集整理的Linux-/proc目录简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二章作业-第3题-万世想
- 下一篇: linux一路填坑...