如何从 /proc/meminfo 计算系统内存使用量(如 htop)
How to calculate system memory usage from /proc/meminfo (like htop)
运行 htop
命令以如下格式提供内存使用情况的图片:
1.92G/5.83G
问题:我应该如何解释从 /proc/meminfo
中获取的值,以便以编程方式计算使用的内存?
我正在寻找与此类似的东西:Accurate calculation of CPU usage given in percentage in Linux? 意思是伪代码没问题,我不需要可以编译的东西,只需要逻辑。 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
.
.
.
...
htop 作者在这里。这些是我为获得内存表中绿色、蓝色和黄色条的数字所做的计算:
- 已用内存总量 =
MemTotal
- MemFree
- 非 cache/buffer 内存(绿色)= 已用内存总量 -(缓冲区 + 缓存内存)
- 缓冲区(蓝色)=
Buffers
- 缓存内存(黄色)=
Cached
+ SReclaimable
- Shmem
- 交换 =
SwapTotal
- SwapFree
在htop源代码中:linux/LinuxProcessList.c and linux/Platform.c.
运行 htop
命令以如下格式提供内存使用情况的图片:
1.92G/5.83G
问题:我应该如何解释从 /proc/meminfo
中获取的值,以便以编程方式计算使用的内存?
我正在寻找与此类似的东西:Accurate calculation of CPU usage given in percentage in Linux? 意思是伪代码没问题,我不需要可以编译的东西,只需要逻辑。 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
.
.
.
...
htop 作者在这里。这些是我为获得内存表中绿色、蓝色和黄色条的数字所做的计算:
- 已用内存总量 =
MemTotal
-MemFree
- 非 cache/buffer 内存(绿色)= 已用内存总量 -(缓冲区 + 缓存内存)
- 缓冲区(蓝色)=
Buffers
- 缓存内存(黄色)=
Cached
+SReclaimable
-Shmem
- 交换 =
SwapTotal
-SwapFree
在htop源代码中:linux/LinuxProcessList.c and linux/Platform.c.