Centos8 找回丢失的内存 作者: Hogwarts 发布于: 2022-10-11 更新于: 2022-10-11 分类: 默认分类 困扰了一年多的问题终于拨云见日了。 这话还得从2002年的那场雪说起。。。 话说Oracle开出的Centos系的AMD机器除Centos7外,内存都不正常。Centos8 803M , Centos Stream8 799.38M,Oracle Linux8 600M或829M。那丢失的内存一直没找到。[Oracle Cloud甲骨文云初始配置](https://winamp.top/184.html "Oracle Cloud甲骨文云初始配置") 近期又在SpartanHost和搬瓦工上开Rocky Linux8,同样有内存不足的问题。对于2G内存的机器就无所谓了,但对于1G内存的机器就有些捉襟见肘,而且对于强迫症患者更是耿耿于怀。 终于找到问题所在了:Centos8 操作系统镜像启用了内核转储,会永久占用保留一些内存供内核崩溃转储使用。所以开出800M左右应该是正常的吧。 本文以Oracle Linux8 1G1H AMD机器为例,应也适应其它Centos系统,未尝试。 #一、查看内存信息 free -h #二、查看linux硬件信息 dmidecode -t memory 可以看到分配的内存是1GB,Size: 1 GB #三、查看预留内存 dmesg | grep -i memory 英文不好有点看不懂 #四、停止kdump服务 ##4.1 检查kdmp是否开启 ulimit -c 如果输出为 0 ,则代表没有打开。 如果为unlimited则已经打开。 Oracle Linux8输出为0。 ##4.2 停止kdump服务 systemctl status kdump Oracle Linux8默认是关闭的,其它系统如果运行中则关闭它。 systemctl stop kdump systemctl disable kdump #五、修改grub文件 ##5.1 先查看一下 cat /etc/default/grub ##5.2 修改grub文件 vim /etc/default/grub 将GRUB_CMDLINE_LINUX="crashkernel=auto rhgb net.ifnames=0 biosdevname=0"中 crashkernel=auto修改为crashkernel=0M,即: GRUB_CMDLINE_LINUX="crashkernel=0M rhgb net.ifnames=0 biosdevname=0" ##5.3 更新grub配置文件并重启系统 grub2-mkconfig -o /boot/grub2/grub.cfg reboot #六、参考 [CENTOS8 VPS内存显示不对](http://www.live-in.org/archives/3228.html "CENTOS8 VPS内存显示不对") [CentOS关闭kdump增大内存](https://sunsea.im/centos-close-kdump-increase-ram.html "CentOS关闭kdump增大内存") [CentOS8禁用kdump](http://www.kael.wang/linux/rhel/centos8-disable-kdump.html "CentOS8禁用kdump") #七、题外话 - 不推荐Oracle Linux系统,去除多余监控后,相比DD后的Debian内存占用240M左右,还是偏大。 - 可以安装老舅的Centos7并安装长期5.10内核,开启bbr,很简单。可参考`teddysun.com`安装。 - Oracle Centos7安装新内核时,查看本机已经存在的内核列表命令为 awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg #路径与原文稍有不同 - 生命不止,折腾不已。在有限的生命里DD纯净版Debian11吧。 #Good Luck And Enjoy! 标签: oracle, centos, 内存