博主手里这台腾讯轻云服务器,安装了Centos 7系统之后,使用 free
命令查看内存大小后发现比所购买配置的标称内存要小很多,大鸟这台2G 内存的查出来也只有 1840M 左右,如下图所示(2G 内存):
这不是商家给你少分配了内存,究其原因原来是打开了kdump导致的。kdump是个好东西,但是对于低配机器就是个鸡肋了。
更多内容:/ 腾讯轻量云申请 /腾讯云 / 腾讯云轻量服务器测评/ 腾讯云测评
一:找出少掉的内存
1、底层硬件信息
使用命令 dmidecode
查看底层硬件信息,可以看到这台轻量云 2G 内存的服务器是分配足了 2048M 内存的。看图:
但是为什么使用 free
命令看到的内存变少了呢?查阅资料找到了答案:free
命令看到的是伙伴系统管理的内存,这部分内存是不包括 OS 内核一些基本数据结构消耗以及内核预留内存的。
2、内核预留内存
使用命令 dmesg | grep -i memory
查看内核预留内存,注意红框标注部分:
额,看到系统为 crashkernel
预留了 161M 的内存,很明显这就是导致我们“内存不足量”的罪魁祸首。
腾讯云提供的 Debian、Ubuntu或者Centos 系统镜像都默认开启了 kdump 服务,kdump 是获取崩溃的 Linux 内核转储的一种方法。而上面提到的“为 crashkernel
预留的内存”就是用于这一服务的,也就是导致我们“内存不足量”的元凶。
现在内存1G、2G的vps内存本来就不够,还启动这个kdump,这就导致经常因为内存不足而导致的各种错误,如sql崩溃什么的。
3、解决
既然问题是由于系统为 kdump 服务预留了一部分内存导致的,那我们直接禁止掉 kdump服务不就可以了。
(1)Centos7禁止kdump
具体命令如下:
systemctl stop kdump.service #禁止服务systemctl disable kdump.service #禁止开机启动
(2)修改grub文件
vi /etc/default/grub
打开后可以看到类似如下的内容,将crashkernel改为0M即可
(3)重新生成grub配置文件后重启系统生效
grub2-mkconfig -o /boot/grub2/grub.cfgreboot
(4)效果
重启之后,执行free -m
发现少掉的内存又回来了。
内存的厂家一般是按照1G=1000MB来算,计算机是二进制,1G=1024MB,所以有一点点误差是可以理解的。
二:安装宝塔放行防火墙等
4、放行防火墙
进入主机管理后再概要的右侧可以看到,或者再网络和域名这一块有防火墙设置,点击进入设置,我们可以放行需要的端口,也可以放行所有端口。
5、重装系统
不支持更换系统,再管理后台的应用信息中可以看到重置应用,点击可以重装系统。
6、 重置root密码
如果忘记密码,可以再实例信息中重置。
7、安装宝塔或者其他环境
放行防火墙端口之后,你安装宝塔面板才可以打开,不然是无法打开的。如何安装宝塔就略过了。
8、最后
个人用户来说买个低配版本的服务器,那么真是没必要保留kdump了。
至于root密码,重装之后,没有任何提示,需要你重置密码。
防火墙的问题,你可以放行所有,也可以按需放行。
评论前必须登录!
注册