我正在键入一个shell脚本,以找出某些RHEL linux盒中的总物理内存。
首先,我想强调一点,我对内核识别的总物理内存感兴趣,而不仅仅是可用内存。因此,请避免给出建议阅读/ proc / meminfo或使用free,top或sar命令的答案-在所有这些情况下,它们的“ 总内存 ”值表示“ 可用内存 ”。
首先想到的是读取启动内核消息:
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页面 页大小4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
我的问题:是否有另一种方法可以获取适合由Shell脚本解析的物理内存总量?