Monitoring

當我打開並從 /proc 讀取時會發生什麼?

  • August 8, 2011

是否需要訪問硬碟驅動器或所有內容都在記憶體中完成?基本上我想不斷地從 meminfo 和 cpuinfo 獲取更新的值。

我是否需要重新打開文件然後重新讀取才能獲得更新的值,或者我可以重新讀取嗎?我目前無權訪問 Linux 安裝。

當您從 中讀取時/proc,核心會即時生成內容。不涉及硬碟驅動器。

你所做的與許多監控程序所做的類似,所以我建議你看看他們在做什麼。例如,你可以看到 top 做了什麼:

strace top >/dev/null

跟踪顯示 top 打開/proc/uptime, /proc/loadavg,/proc/stat並且/proc/meminfo一勞永逸。對於除 之外的所有這些文件/proc/uptime,top 會返回(虛擬)文件的開頭並在每次刷新其顯示時再次讀取。

裡面的大部分數據/proc/cpuinfo是不變的,但是有一些欄位,比如一些機器上的 CPU 速度是動態更新的。

proc 文件系統記錄在核心文件中,在Documentation/filesystems/proc.txt. 如果您對一些深奧的細節感到絕望,您可以瀏覽原始碼

引用自:https://unix.stackexchange.com/questions/8274