經過/proc文件系統找出系統瓶頸

proc文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式爲訪問系統內核數據的操做提供接口。用戶和應用程序能夠經過proc獲得系統的信息,並能夠改變內核的某些參數。"網絡

這裏將介紹如何從/proc文件系統中獲取與防火牆相關的一些性能參數,以及如何經過/proc文件系統修改內核的相關配置。性能

一、從/proc文件系統獲取相關的性能參數spa

cpu使用率:/proc/stat命令行

內存使用狀況:  /proc/meminfocode

網絡負載信息:/proc/net/devorm

相應的計算方法:(摘自:什麼是proc文件系統)接口

(1)   處理器使用率ip

(2)   內存使用率內存

(3)   流入流出數據包it

(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文件,或者其餘隨系統啓動而執行的程序文件中。

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

若是須要獲取其餘的性能參數,或者須要對內核進行更多的配置,能夠參考proc文件系統介紹,也能夠直接經過man proc查看相關的信息

相關文章
相關標籤/搜索