如何在Aliyun Linux 2系统中配置Kdump

如何在Aliyun Linux 2系统中配置Kdump

更新时间:2020-02-21 17:15:33

概述

Aliyun Linux 2系统提供了Kdump服务。开启该服务后可捕获内核错误,方便您对内核崩溃现象进行分析。开启Kdump时会占用一部分操作系统内存空间,对应的用户态系统服务kdump.service可能会影响系统启动速度。鉴于此,在Aliyun Linux 2系统中, Kdump服务不是默认全部开启的,用户需要根据业务实际需求,进行相应的配置。本文重点介绍在Aliyun Linux 2系统中,Kdump服务的打开和关闭选项,并解释对应的风险和应对方法。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

内核启动选项crashkernel的说明

Kdump服务的开启依赖于内核运行时预留一段内存地址空间,该内存地址空间的大小由内核命令行参数/proc/cmdline中的crashkernel选项指定。我们默认在Grub中添加了crashkernel选项,并分段式指定内存大小,整体选项为crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M

  • 当您购买的ECS实例内存,或者手工配置的操作系统内存大小不超过2GiB时,由于应用程序本身可用的内存数量已处于紧缺状态,将不再为操作系统预留内存。因此,系统内存小于2GiB时,您将无法使用Kdump功能。
  • 当您购买的ECS实例内存,或者手工配置的操作系统内存大小超过2GiB,但是不超过8GiB时,系统将预留192MiB的内存大小。
  • 当您购买的ECS实例内存,或者手工配置的操作系统内存大小超过8GiB时,系统将预留256MiB的内存大小。

要验证当前操作系统是否成功预留了相应大小的内存空间,可在操作系统内部执行如下命令查看。

cat /sys/kernel/kexec_crash_size

系统返回类似如下。

201326592

注:返回结果中的kexec crash size单位为字节。

 

Kdump系统服务的开启与关闭

仅有crashekernel内核启动选项是无法实现Kdump完整功能的,还需要配合Kdump服务。参考如下步骤,开启或关闭Kdump服务。

  1. 参考如下两种方式,检查Kdump服务的运行状态。
    • 执行下列命令,查看服务的运行状态。如果返回结果中Active的值为inactive,则说明Kdump服务处于未激活状态。
      systemctl status kdump.service
    • 执行下列命令,查看内核接口提示的状态。如果返回结果为“0”,则说明Kdump服务处于未激活状态。
      cat /sys/kernel/kexec_crash_loaded
  2. 可参考如下命令,开启或关闭Kdump服务。
    • 开启Kdump服务。
      systemctl start kdump.service
    • 关闭Kdump服务。
      systemctl stop kdump.service
  3. 参考步骤1,确认Kdump服务的运行状态符合预期。
  4. 您还可以参考如下命令,选择Kdump服务是否开机自启。
    • 开机自启。
      systemctl enable kdump.service
    • 禁止开机自启。
      systemctl disable kdump.service

 

彻底禁用Kdump服务并归还内存地址空间

如果您的实例无需启用Kdump服务,并希望将系统预留的内存地址空间归还给操作系统本身,以避免资源浪费,可执行下列命令,彻底关闭Kdump服务。

sh -c 'echo 0 > /sys/kernel/kexec_crash_size'
systemctl disable kdump.service
systemctl stop kdump.service

通过下列命令验证内存地址空间不再为Kdump预留,即返回值为“0”。

cat /sys/kernel/kexec_crash_size
0

注:Kdump服务预留的内存地址空间归还给操作系统后,必须重启操作系统才可再次开启Kdump服务。

 

相关文档

 

适用于

  • 云服务器 ECS
    注:
    • 镜像:aliyun-2.1903-x64-20G-alibase-20190327.vhd 及之后所有版本。
    • 内核:kernel-4.19.24-9.al7 及之后所有内核版本。