购买了一台99元的阿里云的机子
机子开机安装宝塔 在安装PHP-fileinfo时会死机 SSH无反应 VNC也无法登录系统 只能通过阿里云控制台强制关机重启(其实本文还没完全解决这个问题 安装fileinfo仍然会死机 完整方法见https://www.heleguo.cn/archives/243)
打开htop发现 这台机子实际可用的只有1.57G
询问客服 发现是阿里云的Ubuntu镜像默认开启了预留内存(crashkernel内存)
下面是查看和释放预留内存的方法
查看预留内存
首先我们需要查看系统是否已开启了crashkernel
sudo cat /proc/cmdline
如果输出的内容中带有crashkernel 则有可能开启了crashkernel
然后我们再看看预留了多少内存
sudo cat /sys/kernel/kexec_crash_size
输出的数字就是预留内存的大小,单位为字节
如图 通过换算可得知博主的机子预留了256MB的内存
释放预留内存
接下来我们开始释放这些预留的内存(注:如果机子里有重要数据要先备份,以免意外造成数据丢失)
首先我们输入
sudo vim /etc/default/grub
按i进入编辑模式 用键盘上的方向键移动光标
找到GRUB_CMDLINE_LINUX那一行 删掉 crashkernel=0M-1G:0M,1G-4G:256M,4G-64G:384M,64G-:512M
编辑完成的文本应如下图所示
然后按键盘上的Ese键 输入:wq后 回车 保存
然后还需要更新一下配置
sudo update-grub
关闭Kdump服务
sudo systemctl disable kdump-tools
sudo systemctl stop kdump-tools
重启一下系统
sudo reboot
重启完成后重新连接机器输入
sudo cat /sys/kernel/kexec_crash_size
此时的结果应为0
此时再用htop查看内存 可用内存变成了1.82G(剩下的内存应该是虚拟化损耗 没法释放)