Linux 内存信息看不明白了

243 阅读1分钟

简介

相信大家对自己设备的内存大小都有一个了解,现在一般都是8G以上的内存了,常见的有16G、32G、64G、128G等。在Linux系统环境下,有多种方式可以查看内存信息,但最近在一次内存排查的过程中,发现内存的总大小的值看不明白了。

硬件的角度内存总大小是64G,但是软件看到的总大小是62G(保留小数的话是62.56G),那怎么解释软件查看内存大小和硬件不一致呢?内存跑哪去了,为啥软件没统计到。

示例

lshw命令

lshw -class memory |grep System -A 4

从硬件的角度获取硬件内存信息,可以看到总大小为64G

image.png

dmidecode命令

dmidecode -t memory|grep "Memory Device" -A 5|grep Size

从分布的角度获取硬件内存信息,可以看到是插入了两根32G内存条,即总大小64G

image.png

free命令

free -h

从软件的角度获取内存信息,可以看到总大小为62G

free -m的大小为64068M,除以1024为62.56G

image.png

/proc/meminfo文件

从内核的角度获取内存信息,可以看到总大小为65605640 kB,和free一致,即62G

image.png