Linux
vmstat 從哪裡獲得“已用記憶體”統計資訊?
如果您執行
vmstat -s
,它會顯示有關您的系統的統計資訊。我想知道它是如何計算used memory
統計數據的(在下面突出顯示)。這不是我可以在 中找到的統計數據/proc/meminfo
。user@machine:# vmstat -s 7483816 K total memory **4740624 K used memory** 3619096 K active memory 800388 K inactive memory 2743192 K free memory 220624 K buffer memory 1989008 K swap cache 901116 K total swap 0 K used swap 901116 K free swap *snip*
如何
vmstat
獲取這些數據?
vmstat``/proc/meminfo
從和獲取虛擬記憶體統計/proc/vmstat
資訊,並從 獲取處理器相關資訊/proc/stat
:% strace -fe open vmstat -s ... open("/proc/meminfo", O_RDONLY) = 3 open("/proc/stat", O_RDONLY) = 4 open("/proc/vmstat", O_RDONLY) = 5 ...
對於使用的記憶體,來自https://gitlab.com/procps-ng/procps/blob/master/proc/sysinfo.c#L772:
if (mem_used < 0) mem_used = kb_main_total - kb_main_free; kb_main_used = (unsigned long)mem_used;