用Arthas快速定位线上JVM问题!

这篇具有很好参考价值的文章主要介绍了用Arthas快速定位线上JVM问题!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Arthas分析FullGC问题定位

       对于FullGC那一定不会陌生,一般来说会采用横切FullGC前置拦截(-XX:+HeapDumpBeforeFullGC)和后置拦截(-XX:+HeapDumpAfterFullGC),导出FullGC发生前后的heap dump文件,以便于我们进行FullGC原因的分析和定位。

推测分析问题之FullGC的频率过高

       我们如果希望可以观测到相关的GC回收次数以及相关的时间,除Java原生的jstat指令之外,还可以通过dashboard看板中的GC子面板(整体部分的右下角)部分,如下图1所示。

用Arthas快速定位线上JVM问题!,开发方案和经验技巧,jvm,java,开发语言

        我们通过分析以及观察到相关的FullGC频率过高,所以可以针对性的获取相关的FullGC前后n(3~5)组的heap dump文件。分析每次FullGC前后的对象数量和空间的较为靠前的对象信息,从而得到综合评判得出FullGC过于频繁结论,分析的要点:

l分析其创建的数量过程为什么过多,以及占用内存剧增的原因。

l分析其创建的数量的内存空间为什么会生命周期过长会迁移到老年代。

l是否存在担保分配机制导致直接在老年代分配,以及对象大小是否过大,导致动态年龄跃升。

l是否提前进入老年代的门槛过低(XX:PretentureSizeThreshold ),导致跃升。

l是否是内存分配不符合业务场景直接进行扩充老年代以及新生代的内存分配值,减少FullGC。

推测分析问题之FullGC的时间过长

       当JVM虚拟机出现FullGC且耗时超过1秒的时候,我们就认为FullGC时间过长,如果存在这种情况,就必须重视起来了,至于如何分析FullGC的问题呢?笔者主要总结了一下几点,希望可以帮助大家排查问题和梳理思路。

l新生代内存空间分配过小:如果新生代过小,对象将会过早的晋升至Old区,而Old区的垃圾回收工作一般较新生代会耗费更多的时间,因此,可利用增大新生区空间来有效地减少GC的停顿时间

l最优的GC回收器:GC回收器是影响GC停止时间的一个十分关键的原因,所以个人建议选择用G1收集器,由于G1回收器是自动调优的,你只需设定一个停止时间的目标,例如:-XX:MaxGCPauseMillis=200。

l发生了热交换内存&#文章来源地址https://www.toymoban.com/news/detail-586084.html

到了这里,关于用Arthas快速定位线上JVM问题!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线上诊断神器-arthas基本应用

    什么是Arthas呢? ​Arthas 是一款阿里推出的 线上监控诊断产品 ,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题

    2023年04月20日
    浏览(20)
  • 【Jvm】性能调优(上)线上问题排查工具汇总

    产品闭环 产品闭环是能够让 用户主动迭代促进产品发展的方式 。例如一些内容产品,比如 糗事百科 ,种子用户 产出高质量内容 ,举报与赞起到 筛选内容 ,提高内容质量的作用, 内容质量的提升有助于吸引更多用户 。 这就是产品闭环, 产品给予用户需求解决方法,用户

    2024年02月20日
    浏览(33)
  • 【Jvm】性能调优(下)线上问题排查思路汇总

    【Jvm】性能调优(上)线上问题排查工具汇总 【Jvm】性能调优(中)Java中不得不了解的OOM Error 标准参数(-) :所有的JVM实现都必须实现该功能且向后兼容 非标准参数(-X) : 默认Jvm实现该功能 ,但是不保证所有jvm实现都满足,且 不保证向后兼容 非稳定参数(-XX) : 各

    2024年02月21日
    浏览(39)
  • JVM:性能监控工具分析和线上问题排查实践

    在日常开发过程中,多少都会碰到一些jvm相关的问题,比如: 内存溢出、内存泄漏、cpu利用率飙升到100%、线程死锁、应用异常宕机 等。 在这个日益内卷的环境,如何运用好工具分析jvm问题,成为每个java攻城狮必备的技能。所以白梦特意整理了 jdk自带分析工具的使用 ,以及

    2024年01月19日
    浏览(33)
  • 【SpringBoot系列】Arthas配合docker轻松实现线上热更新

    目录 1、方案 2、热更新的局限性 3、技术方案实现 3.1 创建一个springboot 项目

    2024年02月05日
    浏览(26)
  • 线上JAVA应用平稳运行一段时间后出现JVM崩溃问题

    系统是一个定时任务系统,需要定时执行业务代码,业务代码主要是访问MYSQL数据库和缓存进行操作,该开始启动,系统日志一切正常,但是运行一段时间到凌晨后,系统就自动崩溃了,java进程没有了,只留下了程序崩溃日志如下: 当JVM 的初始化完成后,类在调用执行过程

    2024年02月05日
    浏览(30)
  • JVM 诊断神器-Arthas实战

    阿里开源的Java诊断工具,它可以在运行时对Java应用程序进行动态诊断和调试 当你遇到以下类似问题而束手无策时, Arthas 可以帮助你解决 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问

    2024年02月07日
    浏览(24)
  • JVM-Arthas高效的监控工具

    一、arthas介绍 3.选择监控哪个进程 4.进入具体进程 二、arthas的基础命令与基本操作 1.查询包含Java的系统属性: 命令:sysprop |grep java 1.查询不含Java的系统属性: 命令:sysprop | grep -v java 3.打印历史命令 命令:history 4.查看当前工作目录 命令:pwd 三、如何使用arthas监控线上服务

    2024年01月23日
    浏览(31)
  • Elasticsearch 线上实战问题及解决方案探讨

    1.1 问题描述 我有 1tb 的一个大索引若干,要迁移到另外一个新集群去,有没有好办法?reindex好像会中断...... reindex 是不是就算设置了频率也会莫名的中断,而且没地方查到错误? 1000多万 的数据,大概 80G  用 reindex 有时候都会莫名的断。 有时候是全的,有时候不全。 http

    2024年02月05日
    浏览(34)
  • JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

    内存分配的两种方式 指针碰撞 适用场合:堆内存 规整 (即没有内存碎片)的情况下。 原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界指针,只需要向着没用过的内存方向将该指针移动对象内存大小位置即可。 使用该分配方式的GC收集器:

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包