Linux 查看内存和实际物理内存大小不一致

疑难杂症2周前更新 huiye
57 0

问题背景:使用 free -h 查看内存,和实际物理内存大小不一致

解答:因为 free 显示的内存去掉了系统使用掉的内存,查看实际内存大小可以使用下面两种方式

内存统计方法一:

命令:lsmem

计算累加:384M+128M+640M+128M+384M+128M+256M=2048M=2G

内存统计方法二:

命令:dmidecode -t memory

被系统用掉的内存大小可以使用命令查看

[root@ansible ~]# cat /proc/cmdline


BOOT_IMAGE=/boot/vmlinuz-4.4.246-1.el7.elrepo.x86_64 root=/dev/vda1 ro vconsole.keymap=us crashkernel=512M-2G:64M,2G-4G:128M,4G-:192M vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8 console=tty1 console=ttyS0,115200n8 video=800x600

其中 crashkernel=512M-:192M 内核预留192M内存。可以手动去掉,但建议保留这个参数, 内核出现宕机的时候可以保留现场。

总结:

(1)系统启动时会初始化相关设备,该过程会占用内存,内核启动时,也会占用一部分的内存。其中,kdump占用的内存是可以自行设置的,如无特殊要求,请勿自行修改kdump占用的内存大小。

(2)free -mh命令查询的是弹性云服务器的可用内存,dmidecode -t memory 命令查询的是实际硬件内存大小(包含内核占用)。因此使用free -mh命令查询到的内存大小比实际的要小一些,属于正常情况

© 版权声明

相关文章