相信大家会有这种经历:购买了一台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://sunsea.im/178/CentOS-close-kdump-increase-ram/

https://www.evec.cc/index.PHP/archives/67

https://blog.csdn.net/heyuqian_csdn/article/deTails/78834853

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。