kdump安装及调试策略

本文基于redhat系的操作系统,debian系不太一样,仅提供参考

1.kdump的部署

注:一般很多操作系统在安装时可默认启动kdump。

(1)需要的包

yum install kexec-tools crash kernel-debuginfo

(2)设置内核启动参数

确保内核参数有“crashkernel=auto”,crashkernel用于设置kdump需要的预留内存的大小,这里将会被kdump服务放入内核,系统崩溃后会启动此处的内核转储/proc/vmcore下的文件到磁盘路径/var/crash下,有如下格式:

crashkernel=X,high //强制使用高端内存,例:crashkernel=1024M,high

crashkernel=X,low //强制使用低端内存,例:crashkernel=256M,low

crashkernel=X@Y //让内核自行选择在X到Y之间大小的内存,例:crashkernel=128M@256M

crashkernel=ramsize-range:size[,...][@offset] //物理内存大小在ramsize到range范围内让内核选择size到offset大小的预留内存,例:crashkernel=1G-64G:160M@256M

内核参数修改方法可以参见其他博客

(3)开启kdump服务

systemctl enable kdump
systemctl start kdump

(4)测试kdump功能

linux内核提供了一个模拟触发的方法,开启kdump服务后,执行如下命令即可:

echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

(5)分析转储文件

如果kdump工作正常,在/var/crash目录下会生成一个带有日期的文件夹,其中就存放了转储文件vmcore,可以使用crash解析:

crash /usr/lib/debug/lib/modules/‘对应转储文件的debuginfo内核’/vmlinux /var/crash/‘对应触发时间的文件夹’/vmcore

如果解析成功会出现交互界面,输入命令“bt”可以打印出栈,说明已经可以正常调试了。

2.一些常见kdump问题的处理

(1)kdump服务启动失败

首先查看“/proc/cmdline”中是否设置了crashkernel,如果有再检查kdump的报错:

systemctl status kdump

如果类似如下的日志,特别是“No memory reserved for crash kernel”,说明crashkernel设置的不对,可以尝试调整大小和格式,也可能是内核不支持某些上述格式。

[root@ai66 test_k8s_log]# systemctl status kdump.service 
● kdump.service - Crash recovery kernel armingLoaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)Active: failed (Result: exit-code) since Wed 2023-11-01 15:24:49 CST; 6 days agoProcess: 1070 ExecStart=/usr/bin/kdumpctl start (code=exited, status=1/FAILURE)Main PID: 1070 (code=exited, status=1/FAILURE)Nov 01 15:24:49 ai66 systemd[1]: Starting Crash recovery kernel arming...
Nov 01 15:24:49 ai66 kdumpctl[1070]: No memory reserved for crash kernel
Nov 01 15:24:49 ai66 kdumpctl[1070]: Starting kdump: [FAILED]
Nov 01 15:24:49 ai66 systemd[1]: kdump.service: main process exited, code=exited, status=1/FAILURE
Nov 01 15:24:49 ai66 systemd[1]: Failed to start Crash recovery kernel arming.
Nov 01 15:24:49 ai66 systemd[1]: Unit kdump.service entered failed state.
Nov 01 15:24:49 ai66 systemd[1]: kdump.service failed.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《堆排序》与《Top—k》

目录 ​编辑 前言: 关于《堆排序》: 第一步:建堆 第二步:排序 《Top—K问题》 关于Top—k问题: 前言: 我们在前面的blog中,对于《堆》已经有了初步的概念,那么接下来我们可以…

机器学习简答题

1、请简述人工智能和机器学习,深度学习的关系? 机器学习是人工智能的一个实现途径。深度学习是机器学习的一个方法发展而来 2、根据数据集组成不同,通常可以把机器学习算法分为哪四类? 监督学习、无监督学习、半监督学习、强化…

搭建Python(3.7及以上版本)环境并安装DashScope SDK报错

搭建Python3.7及以上版本环境并安装DashScope SDK报错 搭建Python环境这里忽略,搭建好环境后安装 pip install dashscope但是会报错,如下所示: ERROR: Could not find a version that satisfies the requirement dashscope (from versions: …

C++中,Lambda表达式和std::function的作用及区别

Lambda表达式和std::function在C中都用于处理函数对象,但它们有不同的用途和使用场景。 Lambda表达式的作用是定义一个匿名函数,可以在需要函数对象的地方直接使用。Lambda表达式通常用于简短的函数逻辑,特别适合用于一些需要定义临时函数的…

flex布局(2)

五、优缺点 优点: 简单易用:Flex布局使用简单,只需通过设置容器的属性即可实现弹性布局,无需复杂的计算和调整。自适应性:Flex布局可以根据容器的大小自动调整元素的位置和大小,适应不同的屏幕尺寸和设备…

3.5 RESOURCE ASSIGNMENT

一旦内核启动,CUDA运行时系统将生成相应的线程网格。正如上一节所讨论的,这些线程被分配给逐个块执行资源。在当前一代硬件中,执行资源被组织成流式多处理器(SM)。图3.12说明可以为每个SM分配多个线程块。每个设备都对…

uniapp中uview组件库中丰富的LineProgress 线形进度条 的使用方法

目录 平台差异说明 #基本使用 #设置进度条动画效果 #设置进度条内部显示百分比值 #修改进度条的样式 #API #Props #Slots 平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√√√√ #基本使用 通过percent设置当前的进度值,该…

计算机视觉下的数据增强代码实现

数据增强的实现 使用经典的pytorch框架下的torchvision.transformers对计算机视觉进行增强的代码实现。 使用下面的图像进行数据增强,相应的效果图如下所示! 导包 import os import PIL.Image as Image from torchvision import transforms as transfor…

微信小程序的登录模块实现

用户联动微信小程序。相关的实现层代码 发送url请求。 /*** 登录验证** param code 临时登录码* return */Overridepublic Map<String, Object> checkLogin(String code) {String url "https://api.weixin.qq.com/sns/jscode2session?appid" appid "…

RT-Thread 线程间同步 信号量

线程间同步 在多线程实时系统中&#xff0c;一项工作的完成往往可以通过多个线程协调的方式共同来完成。 例如一项工作中的两个线程&#xff1a;一个线程从传感器中接收数据并且将数据写到共享内存中&#xff0c;同时另一个线程周期性地从共享内存中读取数据并发送出去显示&a…

SpringCloud系列篇:核心组件之网关组件

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.网关组件是什么 二. 网关组件的…

vivado 创建编译后工程

创建后期合成项目 合成后项目以合成网表、完全生成的块设计、完全生成的IP以及相应的约束。然后&#xff0c;您可以分析、布局和实施设计 注意&#xff1a;您可以使用XST或第三方合成工具来创建合成网表。 重要&#xff01;使用EDIF和NGC文件时&#xff0c;顶部单元格名称必…

java递归生成树型结构

java递归生成树 1.获取数据 public List<TreeClassifyRespVO> getTreeClassifyList(ClassifyPageReqVO reqVO) {List<ClassifyDO> classifyList classifyMapper.selectList(reqVO);List<TreeClassifyRespVO> childClassifyResp ClassifyConvert.INSTANCE…

MySQL之导入、导出

文章目录 1.navicat导入导出2.mysqldump命令导入导出2.1导出2.2导入 3.load data infile命令导入导出4.远程备份5.思维导图 1.navicat导入导出 使用Navicat工具导入t_log 共耗时 55s 2.mysqldump命令导入导出 2.1导出 导出表数据和表结构 语法&#xff1a; mysqldump -u用…

EasyExcel百万数据导入导出

文章目录 百万数据准备EasyExcel导出EasyExcel不支持并发写导出功能的代码片段 EasyExcel导入 https://gitee.com/antirust/idooy-stable/tree/master/idooy-EasyExcel 开发中&#xff0c;导入导出功能对于后台管理这样的系统来说太常用了&#xff0c;除了实现该功能外导入导出…

【算法笔记】动态规划专题

所有解题思路已经直接整合在代码注释中。 动态规划 整体结构 条件抽象与状态描述 【重点1】根据题目给出的限制条件&#xff0c;抽象出会影响决策的部分&#xff0c;这个条件的数量和用法&#xff0c;基本上就是dp领域内题目分类的依据了。比如&#xff0c;单上限的一般用线…

Python爬虫-爬取豆瓣Top250电影信息

&#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;喜欢的话麻烦您点个&#x1f44d;和⭐&#xff01; &#x1f388;…

QT qss文件设置样式

方式一 &#xff08;单个&#xff09; 方式二 &#xff08;全局&#xff09; 所有按钮都会采用这个样式。 方式三 &#xff08;qss文件&#xff09; 创建资源文件 创建qss文件&#xff08;Button.qss&#xff09; 引用qss文件 QApplication a(argc, argv);QString qss;QFile…

金三银四来了,助你一臂之力,10个专家级技巧助你优化React应用性能

Hey,高级JS React开发人员!您是否正在寻找提升技能,优化React应用程序以实现顶级性能? 您来对了! 在本文中,我将与您分享10个专家级性能技巧,这些技巧将大大增强您的React开发。 准备优化、简化和使您的应用程序快速如闪电。让我们深入探讨! 使用函数组件和React钩子: 与…

Kettle Local引擎使用记录(一)(基于Kettle web版数据集成开源工具data-integration源码)

Kettle Web &#x1f4da;第一章 前言&#x1f4da;第二章 demo源码&#x1f4d7;pom.xml引入Kettle引擎核心文件&#x1f4d7;java源码&#x1f4d5; controller&#x1f4d5; service&#x1f4d5; 其它&#x1f4d5; maven settings.xml &#x1f4d7;测试&#x1f4d5; 测试…