码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 性能测试监控-java分析工具Arthas


    Arthas监控docker中的jvm_ray_my的博客-CSDN博客

    Quick Start | arthas

    arthas是什么

    Arthas是阿里巴巴开源的Java诊断工具,它可以帮助开发人员快速、方便地定位和解决Java应用的问题。
    Arthas主要包括以下功能:

    诊断Java应用中的性能问题,如内存泄漏、线程阻塞等;
    诊断Java应用中的异常问题,如空指针异常、数据库连接异常等;
    诊断Java应用中的代码问题,如代码逻辑错误、代码安全漏洞等;
    监控Java应用的运行状态,如内存使用情况、线程状态等;
    提供多种Java应用性能优化方案,如内存优化、线程优化等。

    使用Arthas需要有一定的Java基础知识,可以参考Arthas官方文档或者相关的教程来学习使用方法。

    启动测试jar

    curl -O https://arthas.aliyun.com/math-game.jar
    java -jar math-game.jar
     

    这就是一个测试用的jar文件

    linux启动arthas

    curl -O https://arthas.aliyun.com/arthas-boot.jar
    java -jar arthas-boot.jar
     

    报错Can not find tools.jar under java home: /uinnova/jre1.8, please try to start arthas-boot with full path java.

    解决:

    按照提示,执行java带上java完整路径。

    java进程在容器内

    docker exec -it  2f794c05c40c /bin/bash -c "java -jar /home/arthas-boot.jar"

    把 arthas-boot.jar放在容器挂载目录下,要不然会找不到。

     查看dashboard

    直接输入命令dashboard回车,展示当前进程的信息,结果会一直刷新显示,按ctrl+C退出。

    可以看到各个内存区的使用情况。

    gc.ps_scavenge.count 代表young gc的次数

    gc.ps_marksweep.count 代表fullgc的次数 

    查看进程的mainclass

    thread 1 | grep 'main('

     使用jad命令对mainclass反编译

    jad demo.MathGame

     watch查看方法返回对象

    watch demo.MathGame primeFactors returnObj

     退出arthas

    使用quit或者exit命令可以断开当前进程的连接,已连接至目标进程的Arthas实例会继续留存在目标进程内部,等待下一次连接。(不要用这个,这个会占用端口不释放)

    使用stop命令可以让Arthas彻底断开与目标进程的连接。(用这个)

     命令列表

    命令列表 | arthas

    用户案例

    可以学习

    Issues · alibaba/arthas · GitHub

    线上环境频繁GC问题排查,Finalizer对象该背这个锅吗?_arthas fullgc次数_Leeong_的博客-CSDN博客 

  • 相关阅读:
    【算法专题--链表】反转链表II--高频面试题(图文详解,小白一看就会!!!)
    FPGA实现GTX视频传输,全网最细讲解,提供2套工程源码
    js获取地址中携带的省市区
    Go语言指针简介
    天文望远镜与8K摄像机结合应用简谈
    从源码分析 MGR 的流控机制
    9 - 类
    MFC中嵌入显示opencv窗口
    AMD GPU 内核驱动分析(三)-dma-fence 同步工作模型
    SpringCloudGateway微服务网关实战与源码分析 - 中
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/133365088
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号