如何收集系统宕机后的内存转储信息

前言 最近出现了多次因为各种原因导致的操作系统宕机的问题,为了查找系统宕机的原因,需要收集系统宕机后的内存转储信息。本文就介绍几种常见的方式。 阿里云内置命令收集 由于主要使用的是阿里云的服务器,就先介绍阿里云收集系统宕机内存转储信息的方式。 阿里云系统默认没有开启 dump 配置,我们需要使用以下命令开启:acs-plugin-manager --exec --plugin=ecs_dump_collector --params="--enable" 那我们如何收集内存转储信息呢,执行以下命令:acs-plugin-manager --exec --plugin=ecs_dump_collector --params="-c" 出现以下信息表示收集成功。 有了转储信息文件我们就可以将文件交给专业的运维人员或阿里云工程师进行宕机原因分析。 使用 Crash + Kdump 如果我们没有使用阿里云的服务该如何收集系统崩溃的转储信息呢,我们可以使用 Crash + Kdump 进行收集,通过前面的使用可以看出阿里云的插件就是使用了这两个工具,接下来开始进行简单的介绍。 安装 需要先安装 Crash + Kdump,使用此命令进行安装: 1 2 $ sudo apt install linux-crashdump $ sudo apt install crash 安装完为了使服务生效需要重启服务器。 使用以下命令:sudo cat /etc/default/grub.d/kdump-tools.cfg 可以看出系统保留了 192M RAM 内存区供转储捕获内核使用 收集 为了测试方便我们可以使用此命令快速触发崩溃: sudo echo c > /proc/sysrq-trigger 。命令执行后在 /var/crash 目录会生成以当前时间为名称的目录,目录里面就是收集到的转储信息。 demsg.x 为崩溃时候的系统内核日志,dump.x 文件则为转储的内核快照文件。为了更好的查找问题,我们还需要安装 vmlinux,使用以下命令安装: 1 2 3 4 5 6 echo "deb http://ddebs....

January 6, 2024 · 3 min · overstarry