vmstat는 "사용된 메모리" 통계를 어디서 얻나요?

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?

답변1

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;

관련 정보