当前位置: 首页 > 面试题库 >

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

强志学
2023-03-14
问题内容

我正在键入一个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脚本解析的物理内存总量?


问题答案:

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



 类似资料:
  • 问题内容: 我试图解析WMIC的输出,然后获取PID。 我的脚本如下: 输出如下: 我的目标是获取进程ID。 我已经尝试过将空间作为FOR循环中的delims。然而没有运气。 所以我的问题是如何格式化WMIC的列并获取列? 问题答案: WMIC使用SQL语法的子集。通过将LIKE运算符与通配符一起使用,可以在功能上将FINDSTR测试放在WMIC WHERE子句中。由于它在批处理脚本中,因此需要加

  • 问题内容: 如何以不可知的方式获取Python中的总物理内存?我不需要使用的内存,只需要总的物理内存。 问题答案: 跨平台解决方案的最佳选择是使用psutil软件包(在PyPI上可用)。 对于文档是在这里。

  • 问题内容: 我想将参数传递给它。 我已经习惯了这样做,,....但我要开始对其进行命名 问题答案: 有很多方法可以解析sh中的参数。Getopt很好。这是一个简单的脚本,可以手动解析内容: 运行示例如下: 请注意,由于脚本eval是由用户构造的字符串,因此它甚至不具有强大的鲁棒性,也没有向安全漏洞开放。它仅是作为一种可能的做事方式的示例。一种更简单的方法是要求用户在环境中传递数据。在bourne

  • 问题内容: 关于这种事情有很多问题,但让我们想象一下,我们的目标是安装了getopt和getopts的通用Linux系统(不是我们将使用其中任何一种,但它们似乎很流行) 如何同时解析长参数(–example | –example简单选项)和短参数(-e | -esimple-example | -e简单示例) 问题答案: 您想使用多头和空头期权。工作代码示例: 注意,是先前定义的功能(未显示)。

  • 我们都知道,直接从内存读写数据要比从硬盘读写数据快得多,因此更希望所有数据的读取和写入都在内存中完成,然而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存。相对于物理内存,在 Linux 下还有一个虚拟内存的概念,虚拟内存是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存。用作虚拟内存的磁盘空间被称为 交换空间(又称  

  • 我如何纠正这一点?