有的时候512M内存的小机器用着用着内核就崩了得安装一个kdump了 应该是kdump服务哈哈这个东西的原理百度很多我就不说了
Debian安装
apt install kdump-tools -y
默认情况下启用内核崩溃转储机制。在安装过程中,将提示您以下对话框。
|------------------------| Configuring kexec-tools |------------------------|
| |
| |
| If you choose this option, a system reboot will trigger a restart into a |
| kernel loaded by kexec instead of going through the full system boot |
| loader process. |
| |
| Should kexec-tools handle reboots (sysvinit only)? |
| |
| <Yes> <No> |
| |
|---------------------------------------------------------------------------|
选择“是”以连接kexec-tools所有重新启动。
|------------------------| Configuring kdump-tools |------------------------|
| |
| |
| If you choose this option, the kdump-tools mechanism will be enabled. A |
| reboot is still required in order to enable the crashkernel kernel |
| parameter. |
| |
| Should kdump-tools be enabled be default? |
| |
| <Yes> <No> |
| |
|---------------------------------------------------------------------------|
如果没重启手动重启一下
也应在此处选择是,以启用kdump-tools。
过命令查看kdump的当前状态kdump-config show。如果开启将显示如下内容
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash #错误储存地址
crashkernel addr:
/var/lib/kdump/vmlinuz
kdump initrd:
/var/lib/kdump/initrd.img
current state: ready to kdump
kexec command:
/sbin/kexec -p --command-line="..." --initrd=...
这里注意默认应该是给了128M内存给kdump如果内存较小可以修改grub的配置
由于我这里是vps就直接去/boot/grub/找到grub.cfg进行修改找到这句改 这句配置了分配的大小
linux /boot/vmlinuz-4.14.129-bbrplus root=UUID=813b9d75-c617-4db0-b0f2-6758d17b31f4 ro net.ifnames=0 biosdevname=0 crashkernel=384M-:128M
echo 'Loading initial ramdisk ...'
格式有两种
crashkernel=64M@16M -> 16M位置预留64M
crashkernel=512M-:192M -> 如果系统内存大于512M就预留192M
我写的是
crashkernel=384M-2G:64M,2G-:128M
如果RAM小于384M,则不要保留任何内容(这是“救援”情况)
如果RAM大小介于386M和2G(不包括)之间,则保留64M
如果RAM大小大于2G,则保留128M
现在基本上就配置好了让我们来试试看
强制内核崩溃
可以通过人工方式手动使内核崩溃
$ systemctl is-active kdump
$ echo 1 > /proc/sys/kernel/sysrq
$ echo c > /proc/sysrq-trigger
$ reboot
重启后可以在/var/crash/目录下看到vmcore日志
参考
参考
参考
参考
Comments | NOTHING