在Linux下正确获取物理内存大小
  M5bHUzF5emjr 2023年11月02日 50 0

在Linux下获取内存大小,一般会使用free命令或者解析/proc/meminfo,但这两个方法都有缺点,就是得到的都是内核可分配的内存总量,这个值一般都会低于实际的物理内存,因为内核、固件等都会占用一些。

想获取真实的物理内存,只能通过查询硬件信息,比如通过dmidecode,可以列出所有已安装的内存,再进行简单过滤和累加,就得到了正确的值。

dmidecode --type memory | grep 'Installed Size' | awk '{sum+=$3} END {print sum}'
# 我的测试环境输出结果为8192,单位是MB,与实际相符

其中dmidecode --type memory是查看内存信息,已安装的内存会列在Installed Size中,如:

dmidecode --type memory | grep 'Installed Size'
	Installed Size: 4096 MB (Double-bank Connection)
	Installed Size: 4096 MB (Double-bank Connection)

可以看到安装了2条内存,都是4GB的,然后对结果用awk切分并累加,就得到了正确的结果。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  L83A5jZvvg3Q   2023年11月19日   26   0   0 vim初始化物理内存