web-dev-qa-db-ja.com

/ proc / meminfoからシステムメモリ使用量を計算する方法(htopなど)

htopコマンドを実行すると、次のような形式でメモリ使用量の画像が表示されます。

1.92G/5.83G

質問:使用されているメモリをプログラムで計算するには、/proc/meminfoから取得した値をどのように解釈すればよいですか?

私はこれに似たものを探しています: Linuxでのパーセンテージで与えられるCPU使用率の正確な計算? 疑似コードが大丈夫であることを意味し、コンパイルできるものは必要ありません。ロジックだけです。 htopのソースコードは探す場所ですが、このために記述されたコード行を見つけることができませんでした...

$ cat /proc/meminfo 
MemTotal:        6110716 kB
MemFree:         2076448 kB
MemAvailable:    3800944 kB
Buffers:          382240 kB
Cached:          1496216 kB
SwapCached:            0 kB
Active:          2830192 kB
Inactive:         796648 kB
Active(anon):    1749940 kB
Inactive(anon):   109808 kB
Active(file):    1080252 kB
Inactive(file):   686840 kB
Unevictable:          48 kB
.
.
.
...
11
tgogos

htop作者はこちら。これらは、メモリメーターの緑、青、黄色のバーの数値を取得するために行う計算です。

  • 総使用メモリ= MemTotal-MemFree
  • 非キャッシュ/バッファメモリ(緑)=使用済みメモリの合計-(バッファ+キャッシュメモリ)
  • バッファ(青)= Buffers
  • キャッシュメモリ(黄色)= Cached + SReclaimable-Shmem
  • スワップ= SwapTotal-SwapFree

Htopソースコード: linux/LinuxProcessList.c および linux/Platform.c

htop screenshot

36
Hisham H M