本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
crashkernel参数用于在Linux系统中预留一部分内存,以便在系统崩溃时通过kdump服务捕获内存转储文件。这为系统管理员提供了强大的故障后分析工具,有助于快速定位和修复内核级别的问题。本文将介绍crashkernel参数的配置方法。
操作系统限制
Alibaba Cloud Linux 3
Alibaba Cloud Linux 2
crashkernel参数说明
Alibaba Cloud Linux 2/3默认在cmdline中设置了crashkernel参数。
架构 | 操作系统 | 默认参数 |
x86 | Alibaba Cloud Linux 3 | crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M |
Alibaba Cloud Linux 2 | ||
ARM64 | Alibaba Cloud Linux3 | crashkernel=0M-2G:0M,2G-64G:256M,64G-:384M |
crashkernel参数常见形式
按偏移量设置。
crashkernel=size[KMG][@offset[KMG]]
例如
crashkernel=256M@32M
,表示预留crashkernel大小为256 M,物理地址偏移为32 M。按内存量设置。
crashkernel=range1:size1[,range2:size2,...][@offset]
例如
crashkernel=0M-2G:0M,2G-64G:256M,64G-:384M
,表示:系统内存 ≤ 2 G,则不预留crashkernel。
2 G < 系统内存 ≤ 64 G,则预留256 M。
系统内存 > 64 G,则预留384 M。
按内存区域设置。
crashkernel=size[KMG],low/high
例如
crashkernel=256M,high
,表示在高内存空间预留256 M。
修改crashkernel参数
修改当前内核crashkernel参数。
<crashkernel>
需替换为要设置的值,例如256M
。sudo grubby --update-kernel="/boot/vmlinuz-$(uname -r)" --args="crashkernel=<crashkernel>"
重启实例使配置生效。
警告重启实例将导致您的实例暂停运行,这可能引发业务中断和数据丢失。因此,建议您在执行此操作之前备份关键数据,并选择在非业务高峰期进行。
sudo reboot
查看修改后的crashkernel预留大小。
sudo kdumpctl showmem
kdump服务使用说明
如需使用kdump服务,需确保系统内存 > 2 G。
查看服务状态。
sudo systemctl status kdump
关闭/开启kdump服务。
关闭kdump服务。
sudo systemctl stop kdump
开启dump服务。
sudo systemctl start kdump