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;

おすすめ記事