一尘不染

我如何找出适合由shell脚本解析的linux盒的总物理内存(RAM)?

linux

我正在键入一个shell脚本以找出某些RHEL linux盒中的总物理内存。

首先,我想强调一点,我对内核识别的 总物理内存 感兴趣,而不仅仅是 可用内存 。因此,请避免给出建议阅读 / proc /
meminfo
或使用 freetopsar 命令的答案-在所有这些情况下,它们的“ 总内存 ”值表示“
可用内存 ”。

首先想到的是读取启动内核消息:

Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)

但是在某些Linux系统中,由于在内核启动中使用了EMC2的PowerPath软件及其 泛洪 启动消息,因此即使在 / var / log /
dmesg
文件中,该有用的启动内核消息也不可用。

第二个选项是 dmidecode 命令(由于某些较早的内核和体系结构的限制,我警告内核识别的RAM和实际的RAM可能不匹配)。选项
--memory 简化了脚本,但我意识到该命令的较早版本没有 --memory 选项。

我最后的机会是 getconf 命令。它报告内存页面大小,但不报告物理页面的 总数-_PHYS_PAGES
系统变量似乎是可用的物理页面,而不是物理页面的总数。

# getconf -a | grep PAGES
PAGESIZE                           4096
_AVPHYS_PAGES                      1049978
_PHYS_PAGES                        15466409

我的问题:是否有另一种方法可以获取适合由Shell脚本解析的物理内存总量?


阅读 230

收藏
2020-06-03

共1个答案

一尘不染

如果您对物理RAM感兴趣,请使用命令dmidecode。它给你一个 很大
的不仅仅是更多的信息,但根据您的使用情况下,你可能也想知道,如果8G系统来自2x4GB棒或4x2GB棒。

2020-06-03