使用jprofiler分析dump文件一个实例

2023-10-29

1.. jstat 命令先分析一下

一次fullgc之后 old 老年代使用比例 只降低2% 应该有什么大的对象常驻内存。

 

2.可以使用jmap 命令查看对象大小 (这里后面使用jprofiler 就没用这个命令)

 

jmap -histo:live 72947 | more 

 

3 .dump 线上文件栈

[root@yszyz10a153 ~]# jmap -dump:live,format=b,file=heap201712.hropf  72947   
Dumping heap to /root/heap201712.hprof ...
Heap dump file created

 

4

使用jprofiler 加载dump文件 (jprofiler版本9.1.1)

 

点击菜单biggst object 发现大对象是arrayblockingqueue 占用400M 点击show in graph 图形展示对象

 

 

 

发现关联的可能问题来自 logback 

 

继续查看

 

也是指向logback 

 

查看logback的配置文件 info级别

 

	<!-- 异步输出,异步的log片段必须在同步段后面,否则不起作用 -->
	<appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">
		<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 , 保持INFO的events,设置该值为0。 -->
		<discardingThreshold>0</discardingThreshold>
		<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
		<queueSize>100000000</queueSize> <!-- 设置太大 ,系统可能跑步起来 0<queueSize<1个亿 -->
		<!-- 添加附加的appender,最多只能添加一个 -->
		<appender-ref ref="INFO" />
	</appender>

 

queuesize 设置的太大了 调小该值即可  是个初始的blockingqueue 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用jprofiler分析dump文件一个实例 的相关文章

  • 为什么 JVM 同时具有“invokespecial”和“invokestatic”操作码?

    两条指令都使用静态而不是动态调度 似乎唯一的实质性区别是invokespecial始终将一个对象作为其第一个参数 该对象是分派方法所属类的实例 然而 invokespecial实际上并没有把物体放在那里 编译器负责通过在发出之前发出适当的堆
  • 如何查看JVM中JIT编译的代码?

    有什么方法可以查看 JVM 中 JIT 生成的本机代码吗 一般用法 正如其他答案所解释的 您可以使用以下 JVM 选项运行 XX UnlockDiagnosticVMOptions XX PrintAssembly 根据特定方法进行过滤 您
  • 最近有关于 JVM 的书吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • java.library.path 中没有字体管理器

    以下代码在我的桌面上运行得很好 BufferedImage image new BufferedImage width height BufferedImage TYPE INT RGB Graphics g image getGraphi
  • Java 接口合成方法生成,同时缩小返回类型

    我有 2 个接口和 2 个返回类型 interface interfaceA Publisher
  • 强制jvm返回本机内存[重复]

    这个问题在这里已经有答案了 我时不时地运行需要大量内存的 eclipse 任务 因此 当任务运行时 jvm 会消耗大约 2 3GB 的 RAM 这是可以的 但是一旦 jvm 占用了该内存 它就不会释放它 并且我遇到了一种情况 堆中已用内存约
  • Scala REPL 中的递归重载语义 - JVM 语言

    使用 Scala 的命令行 REPL def foo x Int Unit def foo x String Unit println foo 2 gives error type mismatch found Int 2 required
  • Java 类:匿名类、嵌套类、私有类

    有人能解释一下Java中匿名类 嵌套类和私有类之间的区别吗 我想知道与每个相关的运行时成本以及每个编译器的方法 这样我就可以掌握哪个最适合用于例如性能 编译器优化的潜力 内存使用以及其他 Java 编码人员的普遍可接受性 我所说的匿名类是指
  • 在进行堆转储后,如何在发生 OutOfMemoryError 时重新启动 JVM?

    我知道关于 XX HeapDumpOnOutOfMemoryError https stackoverflow com q 542979 260805JVM 参数 我也知道 XX OnOutOfMemoryError cmd args cm
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • Scala 为了在 JVM 上运行做出了哪些妥协?

    Scala 是一种很棒的语言 但我想知道如果它有自己的运行时 如何改进 IE 由于 JVM 的选择 做出了哪些设计选择 我所知道的两个最重要的妥协是 类型擦除 http java sun com docs books tutorial ja
  • OpenJDK 源代码中如何以及在何处解释分配堆内存?

    我正在尝试更改我的研究项目的 OpenJDK 源代码 我想知道在 Java 程序中调用 new 运算符时的代码流程 class MyFirstProgram public static void main String args throw
  • 将 Kotlin .kt 类打包到 JAR 中

    我如何构建HelloWorld kt as a JAR以便它运行 thufir dur kotlin thufir dur kotlin kotlinc HelloWorld kt include runtime d HelloWorld
  • JVM锯齿状空闲进程

    我目前正在进行一项涉及 JVM 及其内存使用工作原理的研究 我不明白的是 JVM在空闲时用什么填充它的内存 只是为了在堆几乎达到时释放它 为什么使用的内存不只有一条平线 顺便说一句 这个 java 应用程序托管在 glassfish 上 但
  • 如何制作.Net或JVM语言?

    我看到了 NET 和 JVM 的所有这些新语言 一个人如何开始制作一个 我找不到关于 JVM 或 MSIL 规范的任何好的文档 Edit 我已经知道如何解析 我更感兴趣的是如何有这么多人基于这些平台创建新语言 你有点幸运 为 NET 开发的
  • 是否有一种轻量级方法可以在 Java 9+ 中添加安全点

    Java 9 中是否有更便宜的方法调用可以保持其安全点 JVM 在运行时删除安全点以提高效率 但这可能会使分析和监视代码变得更加困难 为此 我们特意添加了一些简单的调用精心挑选确保存在安全点的地方 public static void sa
  • 有没有一种独立的JAVA可以在PC上运行而无需任何操作系统

    据我所知 java 程序可以在任何操作系统上运行 任何类型的机器都有 JVM 我需要一个在我的 PC 上独立运行的 JVM 而不是在我的操作系统 Windows 或任何其他操作系统 上运行 我的意思是 JVM 的作用类似于启动 而不是操作系
  • 使用 jni 从 C 调用 java 函数

    我正在编写一个简单的程序来从我的 C 程序调用 Java 函数 以下是我的代码 include
  • 在 Android 上运行 Java 字节码 - DalvikVM 之上的 Sun JVM

    由于 java 实现 OpenJDK 和Android的虚拟机DalvikVM是开源的 因此必须可以在Google的DalvikVM之上实现Sun的JavaVM 这将使运行基于 JVM 的应用程序和语言成为可能 Clojure Jython
  • 限制 Java 进程的总内存消耗(在 Cloud Foundry 中)

    与这两个问题相关 如何设置JVM的最大内存使用量 https stackoverflow com questions 1493913 how to set the maximum memory usage for jvm 什么会导致 jav

随机推荐

  • LeetCode 225. 用队列实现栈

    文章目录 1 用两个队列实现栈 2 用一个队列实现栈 题目链接 https leetcode cn problems implement stack using queues 1 用两个队列实现栈 C 代码如下 class MyStack
  • java获取短链short-url最终跳转地址

    import java io BufferedReader import java io InputStreamReader import java net HttpURLConnection import java net URL pub
  • 东风汽车股份有限公司MES实施案例

    一 项目背景 东风汽车股份有限公司 以下简称DFAC 汽车分公司是 东风汽车 生产东风系列轻型商用车的主要分公司 于1993年10月奠基 公司占地面积24万平方米 工业建筑面积12 2万多平方米 拥有完整的冲压 焊装 涂装 总装四大生产工艺
  • Jmeter之集合点

    JMeter也有像LR中的集合点 本篇就来介绍下JMeter的集合点如何去实现 JMeter里面的集合点通过添加定时器来完成 注意 集合点的位置一定要在Sample之前 集合点 简单来理解一下 虽然我们的 性能测试 理解为 多用户并发测试
  • [论文阅读] (19)英文论文Evaluation(实验数据集、指标和环境)如何描述及精句摘抄——以系统AI安全顶会为例

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇介绍了英文论文模型设计
  • 共享计算机后防火墙能开启,解决精简版 Windows 7 开启防火墙后无法共享文件的方法...

    我一直在使用 Prosen 做的精简版 Windows 7 系统 在开启了系统自带的防火墙之后 网络共享就老是有问题 别的电脑总是连接不进来 但是关闭系统自带的防火墙后则正常 这个问题困扰了我两三年 给别的电脑共享文件时 只能临时关闭防火墙
  • MySQL下载和安装教程--windows版

    MySQL初学者对于安装MySQL都会遇到一些问题甚至会被这些问题搞得将近崩溃 这里给出当初我从下载MySQL到安装成功启动的过程 图有点多 但过程并不复杂 希望帮助到大家 一 下载MySQL 直接从MySQL官网 https dev my
  • MySQL存储过程

    MySQL存储过程 线上程序有时候出现问题导致数据错误的时候 如果比较着急 我们可以写一个存储来快速修复这块的数据 开发中最常见的方式 存储过程相对与Java开发来说 可以并不是太好维护以及阅读的 所以不建议在程序中去调用存储过程做一些业务
  • 手机经常提示找不到服务器,为什么我的手机显示无法连接到服务器

    lujb31612级分类 其他被浏览3227次2014 10 13 yaorong319 采纳率 50 6级2014 10 14 您好 若手机显示已连接无线网络 但是依然无法上网 建议您 1 把手机关机重启 路由器复位 然后重新连接无线网络
  • Ubuntu (20.4,最新版)安装及简单入门操作

    1 打开VMare WorkStation 点击文件 gt 新建虚拟机 gt 找到宿主机内部Ubuntu镜像的位置 镜像下载位置 https msdn itellyou cn https next itellyou cn 新版地址 Ubun
  • Java代码审计

    一 java编译篇 java编译过程 Java源代码 编译 gt Java字节码 解释器 gt 机器码 Java源代码 编译器 gt jvm可执行的Java字节码 jvm解释器 gt 机器可执行的二进制机器码 gt 程序运行 采用字节码的好
  • (一)Redis: 基于 Key-Value 的存储系统

    1 Redis 介绍与安装 1 1 Redis 基本介绍 Redis 是一种基于 Key Value 的存储系统 可用作数据库 缓存和消息中间件等 仓库地址 https github com redis redis Redis is an
  • Linux火狐浏览器无法看视频,Ubuntu使用火狐浏览器无法播放视频如何解决

    Ubuntu使用火狐浏览器无法播放视频如何解决 发布时间 2020 11 07 17 16 00 来源 亿速云 阅读 156 作者 Leah 今天就跟大家聊聊有关Ubuntu使用火狐浏览器无法播放视频如何解决 可能很多人都不太了解 为了让大
  • 取消计算机硬盘自检,教你电脑开机自检如何关闭

    教你电脑开机自检如何关闭 电脑开机自检如何关闭 1 首先 打开 系统属性 在我的电脑上点右键 属性 或者在控制面板里打开 系统 快捷键win pause break 点 高级 选项卡 在 启动和故障恢复 区里打开 设置 去掉 系统启动 区里
  • 一款好用Ventoy启动盘制作方法

    Ventoy是一个制作可启动U盘的开源工具 有了Ventoy你就无需反复地格式化U盘 你只需要把 ISO WIM IMG VHD x EFI 等类型的文件直接拷贝到U盘里面就可以启动了 无需其他操作 你可以一次性拷贝很多个不同类型的镜像文件
  • .npy文件的读取

    npy文件是numpy专用的二进制文件 以读取x npy文件为例 1 在桌面新建一个文件夹命名为test 将x npy文件放入该文件夹内 2 运行代码 import numpy as np x np load C Users 用户名 Des
  • SLAM能用的传感器

    搞懂RTK定位 看这一篇就够了 知乎 zhihu com
  • Unity基础笔记(7)—— 资源管理

    Unity资源管理 一 资源导入和导出 资源导入 将打包好的unitypackage文件直接拖拽至窗口中 Unity 会自动解析包 再点击 import 即可导入资源 资源导出 右键点击要导出的资源文件夹 点击 export 导出资源 预制
  • 编译mono-debugger-2.4出错

    usr bin ld cannot find ltermcapcollect2 ld 返回 1make fileman 错误 1 echo PKG CONFIG PATH To set the PKG CONFIG PATH value u
  • 使用jprofiler分析dump文件一个实例

    1 jstat 命令先分析一下 一次fullgc之后 old 老年代使用比例 只降低2 应该有什么大的对象常驻内存 2 可以使用jmap 命令查看对象大小 这里后面使用jprofiler 就没用这个命令 jmap histo live 72