内存去哪儿了——linux free 命令查看内存偏小

相信很多公司都在使用云服务器,不知道大家有没有注意到,当你购买了一台云服务器以后,在操作系统里面通过 free 命令查看服务器的内存,容量总是会小于在云厂商控制台上面看到的内存容量。

图片[1]-内存去哪儿了——linux free 命令查看内存偏小 - 小小博客 - 记录与学习前端知识-小小博客 - 记录与学习前端知识

CentOS7.9,系统内内存大小为3819,少200MiB左右。

问题分析

    看到这里,可能大家会猜想是不是服务器有问题,给我们少分配了一点内存,又或者不会太在意这一点点内存。下面将进行详细分析。

1. kdump介绍

    在分析这个问题之前,先来了解下kdump。
    kdump是Linux系统的一种高级故障处理机制,它可以在Linux系统内核崩溃时收集内存转储文件(crashdump),以便在分析转储文件时诊断问题。kdump可以帮助开发人员在内核崩溃时,更快地找到问题所在,以便更快地修复问题。

2. grub配置

    kdump需要预留部分内存供转储内核使用,所以需要配置grub文件。
CentOS6
    配置/etc/grub.conf,在 kernel 后面添加如下:
    kernel crashkernel=auto
CentOS7
    配置/etc/default/grub,GRUB_CMDLINE_LINUX 后面添加如下:
    crashkernel=auto
    其中crashkernel表示预留给转储的内存大小,auto表示系统自动分配,也可以直接写大小,比如预留128M写成crashkernel=128M

我的是centos7.9

CentOS7.9机器在 /etc/default/grub 删除crashkernel=auto,或者设置crashkernel=0,执行 grub2-mkconfig -o /boot/grub2/grub.cfg,然后重启机器。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容