Heim  >  Artikel  >  System-Tutorial  >  Erfahren Sie, wie Sie Kernel-Absturzinformationen erfassen

Erfahren Sie, wie Sie Kernel-Absturzinformationen erfassen

WBOY
WBOYOriginal
2024-06-16 22:34:50907Durchsuche
Installieren Sie zunächst die erforderlichen Pakete:
apt-get -y install aptitude kdump-tools crash kexec-tools makedumpfile linux-image-`uname -r`-dbg 
aptitude full-upgrade # 避免运行的内核版本与调试的版本不一致导致无法调试
Kdump-Konfigurationsdatei /etc/default/kdump-tools-Schlüsselteil
USE_KDUMP=1
KDUMP_SYSCTL="kernel.panic_on_oops=1"
KDUMP_KERNEL=/boot/vmlinuz-3.16.0-4-amd64
KDUMP_INITRD=/boot/initrd.img-3.16.0-4-amd64
KDUMP_COREDIR="/data/crash"
KDUMP_FAIL_CMD="reboot -f"
DEBUG_KERNEL=/usr/lib/debug/vmlinux-3.16.0-4-amd64
MAKEDUMP_ARGS="-c -d 31"
KDUMP_CMDLINE="crashkernel=512M"
Eine falsche Konfiguration führt unter normalen Umständen dazu, dass der Neustart mit einem schwarzen Bildschirm hängen bleibt.
内存大小	crashkernel=
0 - 12G	128M
13 - 48G	256M
49 - 128G	512M
129 - 256G	1G *(896M, 768M o或 512M)
Wichtiger Teil der Grub-Konfigurationsdatei/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="nmi_watchdog=1 crashkernel=512M"

Wichtiger Teil der Sysctl-Konfigurationsdatei /etc/sysctl.conf
kernel.sysrq = 1
kernel.watchdog = 1
kernel.nmi_watchdog = 1
kernel.panic_on_oops = 1
kernel.softlockup_panic = 1
kernel.watchdog_thresh = 10
Neu starten, damit die Konfiguration wirksam wird
update-grub
reboot -f
kdump-config load 
kdump-config show 
Verifizierung
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=a58ab901-00aa-4f8b-b3eb-d352fc72233 ro net.ifnames=0 thash_entries=1048576 rhash_entries=1048576 biosdevname=0 nohz=off enforcing=0 ipv6.disable_ipv6=1 nmi_watchdog=1 selinux=0 transparent_hugepage=never cgroup_enable=memory swapaccount=1 vga=771 crashkernel=512M
# kdump-config test
USE_KDUMP:         1
KDUMP_SYSCTL:      kernel.panic_on_oops=1
KDUMP_COREDIR:     /data/crash
crashkernel addr:  0x2e000000
kdump kernel addr:
kdump kernel:
   /boot/vmlinuz-3.16.0-4-amd64
kdump initrd:
  /boot/initrd.img-3.16.0-4-amd64
debug kernel:
  /usr/lib/debug/vmlinux-3.16.0-4-amd64
kexec command to be used:
  /sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=a58ab901-00aa-4f8b-b3eb-d352fc7f6acb ro net.ifnames=0 thash_entries=1048576 rhash_entries=1048576 biosdevname=0 nohz=off enforcing=0 ipv6.disable_ipv6=1 nmi_watchdog=1 selinux=0 transparent_hugepage=never cgroup_enable=memory swapaccount=1 vga=771 irqpoll maxcpus=1 nousb systemd.unit=kdump-tools.service crashkernel=512M" --initrd=/boot/initrd.img-3.16.0-4-amd64 /boot/vmlinuz-3.16.0-4-amd64
Test
echo c > /proc/sysrq-trigger

Erfahren Sie, wie Sie Kernel-Absturzinformationen erfassen

Analyse
crash /data/crash/201609010252/dump.201609012233 /usr/lib/debug/lib/modules/3.16.0-4-amd64/vmlinux

Erfahren Sie, wie Sie Kernel-Absturzinformationen erfassen

Beginnen Sie die freudige Debugging-Reise

Erfahren Sie, wie Sie Kernel-Absturzinformationen erfassen

Häufige Fehler:
WARNING: kernel version inconsistency between vmlinux and dumpfile # 版本不一致,full-upgrade 一下。
崩溃后系统不重启。 # 请检查 sysctl 、 crashkernel 及 nmi_watchdog 的设定!

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie Kernel-Absturzinformationen erfassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn