我想知道如何计算总RAM,我们如何通过总结“cat proc / meminfo”命令的输出来达到RAM大小
Memtotal = MemFree +?...........
任何人都可以提供帮助
答案 0 :(得分:0)
您需要一个将共享内存考虑在内的工具来执行此操作。
例如,smem:
# smem -t
PID User Command Swap USS PSS RSS
...
10593 root /usr/lib/chromium-browser/c 0 22868 26439 49364
11500 root /usr/lib/chromium-browser/c 0 22612 26486 49732
10474 browser /usr/lib/chromium-browser/c 0 39232 43806 61560
7777 user /usr/lib/thunderbird/thunde 0 89652 91118 102756
-------------------------------------------------------------------------------
118 4 40364 594228 653873 1153092
PSS
这里是一个有趣的专栏,因为它考虑了共享内存(将RSS
加在一起会导致共享内存片段被多次计数,因此数字不会加起来)。< / p>
所以userland进程总共需要654Mb。
# smem -tw
Area Used Cache Noncache
firmware/hardware 0 0 0
kernel image 0 0 0
kernel dynamic memory 345784 297092 48692
userspace memory 654056 181076 472980
free memory 15828 15828 0
----------------------------------------------------------
1015668 493996 521672
内核使用346Mb,并且有16Mb空闲 总体而言,大约一半的内存用于缓存(494Mb)。
所以1Gb RAM总计 = 654Mb userland进程,分解如上 + 346Mb 内核mem + 16Mb free
(给或拿几个Mb)