Linux下proc檔案系統詳解 proc

2021-06-07 13:44:39 字數 1513 閱讀 7518

"proc檔案系統是乙個偽檔案系統,它只存在記憶體當中,而不占用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過proc得到系統的資訊,並可以改變核心的某些引數。"

這裡將介紹如何從/proc檔案系統中獲取與防火牆相關的一些效能引數,以及如何通過/proc檔案系統修改核心的相關配置。

1、從/proc檔案系統獲取相關的效能引數

cpu使用率:/proc/stat

記憶體使用情況: /proc/meminfo

網路負載資訊:/proc/net/dev

相應的計算方法:(摘自:什麼是proc檔案系統)

(1) 處理器使用率

(2) 記憶體使用率

(3) 流入流出資料報

(4) 整體網路負載

這些資料分別要從/proc/stat、/proc/net/dev、/proc/meminfo三個檔案中提取。如里有問題或對要提取的資料不太清楚,可以使用man proc來檢視proc檔案系統的聯機手冊。

(1) 處理器使用率

這裡要從/proc/stat中提取四個資料:使用者模式(user)、低優先順序的使用者模式(nice)、核心模式(system)以及空閒的處理器時間(idle)。它們均位於/proc/stat檔案的第一行。cpu的利用率使用如下公式來計算。

cpu利用率 = 100 *(user + nice + system)/(user + nice + system + idle)

(2) 記憶體使用率

這裡需要從/proc/meminfo檔案中提取兩個資料,當前記憶體的使用量(cmem)以及記憶體總量(amem)。

記憶體使用百分比 = 100 * (cmem / umem)

(3)網路利用率

為了得到網路利用率的相關資料,需要從/proc/net/dev檔案中獲得兩個資料:從本機輸出的資料報數,流入本機的資料報數。它們都位於這個檔案的第四行。

效能收集程式開始記錄下這兩個資料的初始值,以後每次獲得這個值後均減去這個初始值即為從集群啟動開始從本節點通過的資料報。

利用上述資料計算出網路的平均負載,方法如下:

平均網路負載 = (輸出的資料報+流入的資料報) / 2

2. 通過/proc檔案系統調整相關的核心配置

允許ip** /proc/sys/net/ipv4/ip_forward

禁止ping/proc/sys/net/ipv4/icmp_echo_ignore_all

可以在命令列下直接往上述兩個「檔案」裡頭寫入"1"來實現相關配置,如果寫入"0"將取消相關配置。不過在系統重啟以後,這些配置將恢復預設設定,所以,如果想讓這些修改生效,可以把下面的配置直接寫入/etc/profile檔案,或者其他隨系統啟動而執行的程式檔案中。

1. echo 1 > /proc/sys/net/ipv4/ip_forward

2. echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

如果需要獲取其他的效能引數,或者需要對核心進行更多的配置,可以參考proc檔案系統介紹,也可以直接通過man proc檢視相關的資訊。

linux下的 Proc 檔案系統

proc檔案系統是一種在使用者態檢查核心狀態的機制。在proc下一般有如下子目錄和檔案 apm 高階電源管理資訊 bus 匯流排以及匯流排上的裝置 devices 可用的裝置資訊 driver 已經啟用的驅動程式 interrupts 中斷資訊 ioports 埠使用資訊 version 核心版本 ...

Linux的proc檔案系統

proc 為乙個核心資料結構介面,使用者空間和核心空間可以通過該介面通訊,與普通檔案不同的是,這些虛擬檔案的內容都是動態建立的。proc 檔案系統是乙個偽檔案系統,它只存在記憶體當中,而不占用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式 可以通過 proc 得到系統...

Proc檔案系統

include static struct proc dir entry proc null int read proc char page,char start,off t off,int count,int eof,void data len sprintf page len,debug mod...