又出现了hs_err_xx.log,是时候启用dump文件了

简介: 如何启用dump

image.png
测试环境也出现了hs_err log,根据头部信息,就是我们常见的OOM。本来想分析一下segmentation文件,但是没有开启,Failed to write core dump,灰常尴尬。要知道很多时候这些问题可能是无法重现的,因此启用core file很重要。
那么咱们来启用这些重要的配置:

1 启用core files
一旦Java崩溃,操作系统将保存一个core file到硬盘,这个core file包括内存的完整dump。在linux下,core files默认是禁用的。在linux启用需要执行ulimit -c unlimited。如下图(修改前):
image.png
修改后:
image.png
注意:core file会占用大量的磁盘空间,Java heap越大,该文件越大。

2 添加-XX:+HeapDumpOnOutOfMemoryError到JVM参数中
添加这个参数后,当Java应用在遇到OutOfMemoryError后,就会将Java Heap dump到硬盘。可以使用jhat来诊断Java Heap,找出哪些对象占用了大部分的空间,然后检查该对象是否未使用,但是却没有被回收。当然,使用mat分析也可以。

注意:head dump文件也非常大。

例如:在IDEA中添加该JVM 参数
image.png

3 添加-verbosegc到JVM命令行
-verbosegc将会打印Java GC的基本信息。这些日志可以帮助我们判断:

• GC是不是运行时间过长?

• 被回收的内存是不是越来越少

例如:在IDEA中添加该JVM参数
image.png
启动后如果有GC,则会打印类似如下内容:
image.png
4 打印Java版本和JVM标志
执行以下java -version或者加入-XX:+PrintCommandLineFlags(官方文档这里少了一个:号)和-showversion到JVM参数中。

这些信息可以帮助我们在社区中查找已经报告的问题或者Java的BUG。

例如:在IDEA中添加该参数,得到类似如下打印:
image.png
5 使用JMC JMX进行远程监控

6 最后一个是使用JFR商业特性,在开发阶段使用JFR时免费的。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
22天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
77 1
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo日志文件输出到指定目录 如何定义?
Dubbo日志文件输出到指定目录 如何定义?
|
1月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
1月前
|
Linux 应用服务中间件 nginx
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
47 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
49 0
|
4月前
【云备份|| 日志 day6】文件业务处理模块
【云备份|| 日志 day6】文件业务处理模块
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
199 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo日志文件输出到指定目录 如何定义?
Dubbo日志文件输出到指定目录 如何定义?
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo日志文件输出到指定目录 如何定义?
Dubbo日志文件输出到指定目录 如何定义?
|
4天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。

热门文章

最新文章