Core 文件的简单学习
背景
最近公司内经常出现jvm进程宕机的情况.
宕机之后没有产生jvm的dump文件.比如xxx.hprof
但是产生了 core.$pid的文件.
曾经在aarch64架构上宕机时曾经想学习一下core文件的解析
但是当时因为比较懒(现在也是)
没有深入下去.
这次简单学习几个命令. 想着能够慢慢提高自己.
作为抛砖引玉
core文件需要的配置
一般需要 ulimit -c unlimited 才可以生成core文件
如果 ulimit -c 的返回值是 0 那么是禁止生成core文件的.
如果想开机生效可以在
/etc/security/limits.conf
增加设置
* hard core unlimited
* soft core unlimited
保存之后 重启也会继续生效.
关于core文件的说明
core文件不同于jvm的dump文件.
core文件是整个内存的映象快照, 是将整个内存全部写入到磁盘中去.
需要注意保证磁盘空间足够, 避免宕机导致业务停止.
默认的core文件生成路径在执行文件的当前路径.
可以通过修改 /etc/sysctl.conf 进行修改默认文件名和路径
kernel.core_pattern = /var/core_%e_%t_%p
sysctl -p 生效
注意core文件的参数含义
%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加程序名
来源: https://blog.csdn.net/weixin_45937795/article/details/126364422
gdb
分析core文件一般需要 gdb 工具
可以进行安装.
默认系统好像都带上了.. 公司的垃圾网络也查不到对应内容.
所以暂时不进行安装的说明.
分析java程序生成的gdb文件
1. 查看进程信息
执行的命令为:
gdb java二进制的文件 对应的core文件
gdb /opt/gscloud/server/runtime/java/x86_64-linux/bin/java core.5989
在 (gdb) 的后面输入
bt 和 bt full
可以查看堆栈信息.
2. 可以使用jmap 分析内存使用情况
环境变量内部的java原生命令 java二进制文件 对应的core文件.
jmap /opt/gscloud/server/runtime/java/x86_64-linux/bin/java core.5989
3. 使用jstack分析java的线程情况
jstack /opt/gscloud/server/runtime/java/x86_64-linux/bin/java core.5989
4. 转储为dump文件
jmap -dump:live,format=b,file=core.5989.hprof /opt/gscloud/server/runtime/java/x86_64-linux/bin/java core.5989
会自动生成了jvm的dump文件
然后可以通过 mat 进行分析.查看宕机的问题.
学习与体会
https://www.jianshu.com/p/2cdf71f99209
https://blog.csdn.net/weixin_45937795/article/details/126364422
参考了很多文档. 如上只是其中两个.
感觉日常工作中会遇到各种各样的问题
通过问题来学习是一个很好的提高自己的机会.
希望自己能够慢慢的学习与提高.
Core 文件的简单学习的更多相关文章
- reStructuredText文件语法简单学习
reStructuredText 是一种扩展名为.rst的纯文本文件,通过特定的解释器,能够将文本中的内容输出为特定的格式 1. 章节标题 章节头部由下线(也可有上线)和包含标点的标题组合创建,其中下 ...
- Linux core 文件介绍
Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...
- (转)Linux core 文件介绍与处理
1. core文件的简单介绍 在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. 开启或关闭core文件的生成用以 ...
- Linux系统—— core 文件
Linux core 文件介绍 1. core文件的简单介绍 在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. ...
- lnux 下 core文件
1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. 开启或关闭core文件的生成用以下 ...
- ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 静态文件 前几章节中,我们学习了 ASP.NET Core 的中间件 ...
- asp.net core合并压缩资源文件引发的学习之旅
0. 在asp.net core中使用BuildBundlerMinifier合并压缩资源文件 在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见:http://www. ...
- Core文件简单介绍及生成设置方法
Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...
- 简单学习一下ibd数据文件解析
来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析My ...
- 如何查找并简单分析core文件
当系统发生coredump时,通常需要通过分析core文件来定位问题所在,但实际工作中,有时却发现core 文件找不到,或者core文件被删除了. 一.core文件没有生成 KINGBASE core ...
随机推荐
- 十八般武艺玩转GaussDB(DWS)性能调优:总体调优策略
摘要: 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目实施过程中占据很大的份量,本篇主要介绍数据库级别的性能调优思路和总体策略. 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目 ...
- 云图说|AI开发难!难!难!端云协同多模态AI开发套件你需要了解一下
摘要:Huawei HiLens Kit是一款端云协同多模态AI开发套件,支持图像.视频.语音等多种数据分析与推理计算,可广泛用于智能监控.智能家庭.机器人.无人机.智慧工业.智慧门店等分析场景. 在 ...
- KAFKA EAGLE 监控MRS kafka之操作实践
本文分享自华为云社区<KAFKA EAGLE 监控MRS kafka之操作实践>,作者: 啊喔YeYe . 1.Kafka Eagle简介 Kafka eagle 是一款分布式.高可用的k ...
- 基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云
摘要:本文主要讲解如何基于L2设备对接华为云IoTDA,以DAYU200开发板,采用IoTDeviceSDKTiny对接华为云IoTDA,当然这里也可以采用其他OpenHarmony的富设备. 本文分 ...
- 带你认识Flink容错机制的两大方面:作业执行和守护进程
摘要:Flink 容错机制主要有作业执行的容错以及守护进程的容错两方面,前者包括 Flink runtime 的 ExecutionGraph 和Execution的容错,后者则包括 JobManag ...
- MultipartFile与File的一些事
摘要:某段时间碰到了中转文件的需求,需要使用HttpClient中转一下文件,在实现这个需求的过程中就用得到了MultipartFile与File. 本文分享自华为云社区<MultipartFi ...
- 十问ByteHouse:如何基于ClickHouse玩转向量检索?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 向量检索被广泛使用于以图搜图.内容推荐以及大模型推理等场景.随着业务升级与 AI 技术的广泛使用,用户期望处理的向 ...
- 火山引擎DataLeap背后的支持者 - 工作流编排调度系统FlowX
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景介绍 业务场景 在日常工作中,我们时不时需要对某些逻辑进行重复调度,这时我们就需要一个调度系统.根据不同的调度 ...
- Intellij IDEA 开启 RunDashboard
1. 关闭 Intellij IDEA (2018以下的版本无效),打开 workspace.xml 找到 RunDashboard 节点.添加如果配置 <option name=" ...
- 第一章 Linux系统编程
Linux基础命令 ctrl + l //快速清屏 rm 文件名 //删除文件,rm *.o表示删除所有.o后缀的文件 mkdir 目录名 //创建一个目录 touch 文件名 //创建一个文件 tr ...