配置内核参数
当内核发生一些死锁,系统并不会重启,只会卡死。这种情况下并不会造成内核panic,需要构造条件使内核panic,这样才能生成vmcore文件。
内核提供了多种场景构造panic:
- 进程出现挂起时引发panic
1
echo 1 > /proc/sys/kernel/hung_task_panic
- 进程hangtask机制超时时间
1
echo 60 > /proc/sys/kernel/hung_task_timeout_secs
- 软锁(soft lockup)触发panic
1
echo 1 > /proc/sys/kernel/softlockup_panic
- 设置Kernel遇到OOM触发panic
1
echo 1 > /proc/sys/vm/panic_on_oom
- 设置内核中出现警告产生panic
1
echo 1 > /proc/sys/kernel/panic_on_warn
通过以上命令修改的相关配置为临时生效,重启后失效。如需要重启自动配置,可按照以下步骤进行操作。
- 编辑“etc/sysctl.conf”文件。
1
vim etc/sysctl.conf
写入如下参数:
配置kernel.panic_on_warn=1参数会在内核发生警告时,强制系统崩溃,触发kdump机制。如果在系统启动时就有警告,则会导致系统出现无法启动的情况。因此,建议仅在必要时才启用该参数。
1 2 3 4 5
kernel.hung_task_panic=1 kernel.hung_task_timeout_secs=60 kernel.softlockup_panic=1 vm.panic_on_oom=1 kernel.panic_on_warn=1
- 使配置生效。
1
sysctl -p
父主题: 分析手段