相信大家会有这种经历:购买了一台1G内存的VPS,结果发现内存不够1G。内存的厂家一般是按照1G=1000MB来算,计算机是二进制,1G=1024MB,所以有一点点误差是可以理解的,可是明明买的是2G内存的VPS可是可用内存只有1.7G多,这就不对了,究其原因原来是打开了kdump导致的。

1.什么是kdump?

kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务,打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个dump core文件中以便于Red Hat工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启。这和以前的diskdump,netdump是同样道理。

2.为什么要关闭?

kdump是个好东西,不过在低配VPS面前,就变成了一个鸡肋,现在内存1G、2G的vps内存本来就不够,还启动这个kdump,这就导致经常因为内存不足而导致的各种错误,如sql崩溃什么的。

3.关闭kdump

登陆root用户

3.1、关闭kdump服务

service kdump stop

3.2、禁止开机启动

chkconfig kdump off

3.3、修改grub文件

nano /etc/default/grub

可以看到类似如下的内容,将crashkernel改为0M

GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=0M rhgb net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

3.4、重新生成grub配置文件后重启系统生效

grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

4、参考文章

https://www.evec.cc/index.php/archives/67
https://blog.csdn.net/heyuqian_csdn/article/details/78834853

本站由企鹅小屋强力驱动
Last modification:September 15, 2019
如果觉得我的文章对你有用,请随意赞赏