kdump
Kdump
kdump是在系统崩溃、死锁、或者死机的时候用来转储内存为vmcore保存到磁盘的一个工具和服务
相关配置
1 |
|
安装用户态工具包
1 |
|
配置预留内存
配置第一内核启动参数(/etc/default/grub.d/kdump-tools.cfg):
1 |
|
完整的格式可以是:crashkernel=1G-:512M@3G,其含义是:
- 当内存大于1G时,预留512M
- 预留位置在3G
- 如果“@offset”部分留空的话,内核会自动寻找合适的位置。(一般都不需要指定)
- 在x86虚拟机环境里,直接用crashkernel=512M就能正常运行,但某些架构不行,所以推荐用这个格式:crashkernel=1G-:512M。
- 预留内存大小默认是128M,一般而言都太小了,建议使用512M
注意:
- sw内核的crashkernel代码不完整,没有实现自动寻找的功能,所以不指定offset时会默认为offset=0,与第一内核发生冲突而导致系统起不来,此时应该用完整的格式,比如1G-:512M@3G。
配置完成后需要重启系统生效
有两种方式可以确认内核是否正确完成了内存预留:
1 |
|
1 |
|
触发Kdump
- 手动触发
- 开启sysrq
sysctl kernel.sysrq=1
- 触发panic
echo c > /proc/sysrq-trigger
- 开启sysrq
- oops
- oom
- softlockup/hardlockup
- rcu-stall