如何检查精确的服务器上安装的内存量是多少?/proc/meminfo 中的 MemTotal 显示内存量略少。例如,我有 2097152K,而 meminfo 显示 2054348K。
我可以对 dmidecode 报告的所有银行进行总结,但需要重新启动才能更新 - 我不喜欢这样。
还有其他想法吗?我正在为 vmware 环境中的自动配置编写测试,我想把它做好。:)
答案1
至于为什么MemTotal缺少一些内存:https://serverfault.com/a/219990/37681
MemTotal: Total usable ram (i.e. physical ram minus a few reserved
bits and the kernel binary code)
只要内核消息缓冲区尚未被最新事件填充:查找以 开头的Memory
行dmesg
:
# dmesg |grep " Memory:"
[ 0.000000] Memory: 8125008K/8388088K available (8546K kernel code, 1313K rwdata, 4000K rodata, 1516K init, 1316K bss, 263080K reserved, 0K cma-reserved)
显示物理内存8388088K
:“一些保留位和内核二进制代码” 263080K
其余的可供应用程序使用,为 8125008K,并在 /proc/meminfo 中显示为 MemTotal。
(启动过程的后期将释放一些额外的内存,从而增加 MemTotal,顺便说一下dmesg |grep Freeing
)