欢迎访问机房运维工作室

爱数知识库

AnyShare-配置手动触发 kdump 最佳实践

频道:爱数知识库 日期: 浏览:199

AnyShare-配置手动触发 kdump 最佳实践

关键字

kdump、内存转储

适用产品

  • AnyShare 6.0.0 - 6.0.6

目的

在部分情况下,系统卡死、崩溃时未自动触发 kdump,系统日志内亦未能记录有用信息,可参考本最佳实践,配置手动触发 kdump ,以便出现此类情况时可收集内存转储文件进行问题的分析。

解决方案

1. 通过 SSH 工具登录 AnyShare 节点操作系统,执行如下命令检查 kdump 服务状态。

systemctl status kdump

命令返回结果为 active,表示 kdump 服务已启动,跳转执行第 3 步。
命令返回结果为 inactive(dead),表示 kdump 服务未启动,跳转执行第 2 步。

2. 执行如下命令,启动 kdump 服务。

systemctl start kdump

3. 执行如下命令,设置 kdump 服务为开机自启动。

systemctl enable kdump
systemctl is-enabled kdump

4. 执行如下命令,设置内存转储文件目录,目录以 /var/crash 为例。

grep -qi 'kernel.core_pattern' /etc/sysctl.conf && sed -ri 's/^kernel.core_pattern.*$/kernel.core_pattern = \/var\/crash\/%e.core.%p/g' /etc/sysctl.conf || sed -ri '$a\kernel.core_pattern = \/var\/crash\/%e.core.%p' /etc/sysctl.conf;
sysctl -p

5. 执行如下命令,设置使用 Magic SysRq Keys 触发 kdump。

grep -qi 'kernel.sysrq' /etc/sysctl.conf && sed -ri 's/^kernel.sysrq.*$/kernel.sysrq = 1/g' /etc/sysctl.conf || sed -ri '$a\kernel.sysrq = 1' /etc/sysctl.conf;

sysctl -p

6. 执行如下命令,设置使用 NMI key 触发 kdump 。

grep -qi 'kernel.unknown_nmi_panic' /etc/sysctl.conf && sed -ri 's/^kernel.unknown_nmi_panic.*$/kernel.unknown_nmi_panic = 1/g' /etc/sysctl.conf || sed -ri '$a\kernel.unknown_nmi_panic = 1' /etc/sysctl.conf;

sysctl -p

7. 当发生系统卡死、崩溃时,可使用组合键 Alt + Printscreen + C 手动触发 kdump,如键盘失去响应,可按下主机前面板上的 NMI 键手动触发 kdump,进行如上操作后,系统将进行内存转储,存放目录为 /var/crash 。

更多信息