码迷,mamicode.com
首页 > 其他好文 > 详细

kdump报错原理及解决方法

时间:2019-06-24 09:15:51      阅读:456      评论:0      收藏:0      [点我收藏+]

标签:top   disk   报错   systemd   内存   解决方案   star   配置   roc   

kdump是Linux内核崩溃转储机制。在系统崩溃时,kdump创建一个内存映像(vmcore),可以帮助确定崩溃原因。启用kdump需要你通过kdump专用储备系统存储器的一部分。这段内存不可用作其他用途。这和以前的diskdump,netdump是同样道理.cent 5之后的版本出现的.

systemctl status kdump

[server]-[root@arrow etc]$systemctl status kdump 
● kdump.service - Crash recovery kernel arming
   Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2019-06-22 21:11:01 CST; 3h 36min ago
 Main PID: 7630 (code=exited, status=1/FAILURE)

Jun 22 21:11:01 arrow.org systemd[1]: Starting Crash recovery kernel arming...
Jun 22 21:11:01 arrow.org kdumpctl[7630]: No memory reserved for crash kernel
Jun 22 21:11:01 arrow.org kdumpctl[7630]: Starting kdump: [FAILED]
Jun 22 21:11:01 arrow.org systemd[1]: kdump.service: main process exited, code=exited, status=1/FAILURE
Jun 22 21:11:01 arrow.org systemd[1]: Failed to start Crash recovery kernel arming.
Jun 22 21:11:01 arrow.org systemd[1]: Unit kdump.service entered failed state.
Jun 22 21:11:01 arrow.org systemd[1]: kdump.service failed.

原理:

如果系统的内存 <= 8 GB 对kdump kernel不会保留任何内容;也就是说,crashkernel=auto 等于关掉了机器上的kdump功能

如果系统的内存> 8 GB 但是<= 16 GB,crashkernel=auto会保留256M,等同于crashkernel=256M

如果系统内存> 16GB, crashkernel=auto会保留512M, 等同于crashkernel=512M

如何设定 crashkernel 参数:

在 kdump 的配置中,往往困惑于 crashkernel 的设置。“crashkernel=X@Y”,X 应该多大? Y 又应该设在哪里呢?实际我们 可以完全省略“@Y”这一部分,这样,kernel 会为我们自动选择一个起始地址。而对于 X 的大小,般对 i386/x86_64 的系统, 设为 128M 即可;对于 powerpc 的系统,则要设为 256M。

解决方案:

修改/etc/grub.conf 中的内核行crashkernel=auto内容为crashkernel=128M@48M
或者 systemctl stop kdump;systemctl disable kdump 并且重启

kdump报错原理及解决方法

标签:top   disk   报错   systemd   内存   解决方案   star   配置   roc   

原文地址:https://blog.51cto.com/14316149/2412375

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!