JVM-Arthas高效的监控工具

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

一、arthas介绍

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

3.选择监控哪个进程

JVM-Arthas高效的监控工具,Java,jvm,java,后端

4.进入具体进程

JVM-Arthas高效的监控工具,Java,jvm,java,后端

二、arthas的基础命令与基本操作

JVM-Arthas高效的监控工具,Java,jvm,java,后端

1.查询包含Java的系统属性:

命令:sysprop |grep java

JVM-Arthas高效的监控工具,Java,jvm,java,后端

1.查询不含Java的系统属性:

命令:sysprop | grep -v java

JVM-Arthas高效的监控工具,Java,jvm,java,后端

3.打印历史命令

命令:history

JVM-Arthas高效的监控工具,Java,jvm,java,后端

4.查看当前工作目录

命令:pwd

JVM-Arthas高效的监控工具,Java,jvm,java,后端

三、如何使用arthas监控线上服务的内存状态

JVM-Arthas高效的监控工具,Java,jvm,java,后端

1.dashboard - 当前系统的实时数据面板

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

命令:dashboard -i 100    100毫秒刷新一次

JVM-Arthas高效的监控工具,Java,jvm,java,后端

命令:dashboard -n 2 刷新两次

JVM-Arthas高效的监控工具,Java,jvm,java,后端

命令:dashboard -n 2 -i 1000 每1秒刷新一次共刷新两次

JVM-Arthas高效的监控工具,Java,jvm,java,后端

2.thread - 查看当前线程信息,查看线程的堆栈

支持一键展示当前最忙的前N个线程并打印堆栈

命令:thread -n 3

JVM-Arthas高效的监控工具,Java,jvm,java,后端

当没有参数时,显示第一页线程的信息

命令:thread

JVM-Arthas高效的监控工具,Java,jvm,java,后端

显示指定线程的运行堆栈

命令:thread id

JVM-Arthas高效的监控工具,Java,jvm,java,后端

查看阻塞的线程

命令:thread -b

JVM-Arthas高效的监控工具,Java,jvm,java,后端

3.heapdump - dump java heap, 类似 jmap 命令的 heap dump 功能.

dump 到指定文件

命令:heapdump arthas-output/dump.hprof

JVM-Arthas高效的监控工具,Java,jvm,java,后端

4.jvm - 查看当前JVM信息

命令: jvm

JVM-Arthas高效的监控工具,Java,jvm,java,后端

5.memory - 查看JVM内存信息

命令:memory

JVM-Arthas高效的监控工具,Java,jvm,java,后端

六、如何使用arthas监控载入的类信息screenflow

JVM-Arthas高效的监控工具,Java,jvm,java,后端

1.classloader - 查看classloader的继承树、urls、类加载信息

命令:classloader

JVM-Arthas高效的监控工具,Java,jvm,java,后端

大白话:

        系统使用的类加载器种类,每种加载器创建实例数量(numberOfInstances)、加载类数量(loadedCountTotal)

2.jad - 反编译指定已加载类的源码,这个命令就可以检查线上的类是不是最新的代码

命令:jad java.lang.String

JVM-Arthas高效的监控工具,Java,jvm,java,后端

解释:

        代码是反编译出来的,可能有些代码的位置会有所变化。

3.sc - 查看JVM已加载的类信息,还具备搜索功能

搜索java.lang包下的类

命令:sc java.lang.*

JVM-Arthas高效的监控工具,Java,jvm,java,后端

搜索所有包下的MathGame类

命令: sc *.MathGame

JVM-Arthas高效的监控工具,Java,jvm,java,后端

搜索所有包下的MathGame类并且查看类的信息

命令: sc -d *.MathGame

JVM-Arthas高效的监控工具,Java,jvm,java,后端

大白话:

        -d 类的信息

        -f 类方法的信息

4.sm - 查看已加载类的方法信息

查看java.lang.String的方法信息

命令: sm java.lang.String

JVM-Arthas高效的监控工具,Java,jvm,java,后端

五、如何使用arthas追踪方法的执行情况screenflow

JVM-Arthas高效的监控工具,Java,jvm,java,后端

1.monitor - 方法执行监控

JVM-Arthas高效的监控工具,Java,jvm,java,后端命令:monitor -c 5 demo.MathGame primeFactors

JVM-Arthas高效的监控工具,Java,jvm,java,后端

2.watch - 函数执行数据观测

观测demo包下MathGame类的primeFactors方法,-x 输出结果的属性遍历深度

1 - 第一级别,显示入参、出参的类型

命令:watch demo.MathGame primeFactors -x 1

JVM-Arthas高效的监控工具,Java,jvm,java,后端

2 - 第二级别,显示入参、出参的具体数据

命令:watch demo.MathGame primeFactors -x 2

JVM-Arthas高效的监控工具,Java,jvm,java,后端

3 - 第三级别,显示方法值的具体数据更加详细

命令:watch demo.MathGame primeFactors -x 3

JVM-Arthas高效的监控工具,Java,jvm,java,后端

4 - 第四级别,显示方法值的具体数据更加详细,更底层,一般用不到

命令:watch demo.MathGame primeFactors -x 4

JVM-Arthas高效的监控工具,Java,jvm,java,后端

[b] -在函数调用之前观测

命令:watch demo.MathGame primeFactors -x 2 -b

JVM-Arthas高效的监控工具,Java,jvm,java,后端

[s] -在函数调用之前观测

命令:watch demo.MathGame primeFactors -x 2  -s

JVM-Arthas高效的监控工具,Java,jvm,java,后端

注:目前watch命令好像不能同时既看入参也看出参,即不能同时使用-b和-s命令,只会显示一个出参或入参。

仅观测函数调用入库的参数和返回值

命令:watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b

JVM-Arthas高效的监控工具,Java,jvm,java,后端

总结,arthas的命令很多,此处仅讲了一些常用的,其他具体需要看帮助手册。

六、绘制火焰图

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

启动profiler

命令:profiler start

JVM-Arthas高效的监控工具,Java,jvm,java,后端

获取已采集的sample的数量

命令:profiler getSamples

JVM-Arthas高效的监控工具,Java,jvm,java,后端

停止profiler

命令:profiler stop --format html

JVM-Arthas高效的监控工具,Java,jvm,java,后端

默认情况下,arthas 使用 3658 端口,则可以打开: http://localhost:3658/arthas-output/在新窗口打开 查看到arthas-output目录下面的 profiler 结果:

命令:http://localhost:3658/arthas-output/

还有一种打开方式,进入html的存放目录,直接打开。

JVM-Arthas高效的监控工具,Java,jvm,java,后端

JVM-Arthas高效的监控工具,Java,jvm,java,后端

怎么看有没有问题呢,看一张死锁的火焰图

JVM-Arthas高效的监控工具,Java,jvm,java,后端文章来源地址https://www.toymoban.com/news/detail-819098.html

到了这里,关于JVM-Arthas高效的监控工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • JVM 性能监控与故障处理工具

    基础工具 jps:虚拟机进程状态工具 jps 命令格式: jps [options] [hostid] 命令可选项解释: 选项 解释 -q 只输出 LVMID,省略主类的名称 -m 输出传给 main 函数的参数 -l 输出主类的全名,如果进程运行的 JAR 包,则输出 JAR 包的路径 -v 输出虚拟机进程启动时的 JVM 参数 jstat:虚拟机统

    2024年02月07日
    浏览(31)
  • JVM性能监控之命令行工具全解

    性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。 Java作为最流行的编程语言之一,其应用性能诊断一直受到业界的广泛关注,可能造成Java应用出现性能问题的因素非常多,例如线程控制、

    2023年04月08日
    浏览(32)
  • 【JVM 监控工具】性能诊断--JProfiler的使用

    性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成 Java 应用出现性能问题的因素非常多,例如线程控制、

    2024年02月08日
    浏览(47)
  • 用Arthas快速定位线上JVM问题!

           对于FullGC那一定不会陌生,一般来说会采用横切FullGC前置拦截(-XX:+HeapDumpBeforeFullGC)和后置拦截(-XX:+HeapDumpAfterFullGC),导出FullGC发生前后的heap dump文件,以便于我们进行FullGC原因的分析和定位。        我们如果希望可以观测到相关的GC回收次数以及相关的时间,

    2024年02月16日
    浏览(31)
  • 【Java可执行命令】(十七)JVM运行时信息动态维护工具 jinfo:一个维护 JVM 相关的配置参数和系统属性的工具,辅助故障排除、诊断和优化 ~

    jinfo 是 Java Development Kit (JDK) 自带的一款命令行工具。它旨在为用户提供进程的运行时信息,特别是与 Java 虚拟机 (JVM) 相关的配置和系统属性。 jinfo 使得用户可以轻松地查看和修改正在运行的 Java 进程的参数,以便进行 故障排除、诊断和优化 。 jinfo 允许用户动态查询和修改

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

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

    2024年01月19日
    浏览(33)
  • 性能调优篇 二、Jvm监控及诊断工具-命令行篇

    性能诊断是软件工程师在日程生活中需要经常面对和解决的问题 Java作为最流行的编程语言之一,其应用性能诊断一直收到业内广泛关注。造成Java应用出现性能问题的因素非常多,例如线程控制,磁盘读写,数据库访问,网络io,垃圾收集等。 想要定位这些问题,一款优秀的

    2024年02月11日
    浏览(37)
  • 利用Arthas+APM监控进行Java性能深度定位

    大家可能都用过APM监控,包括开源的Skywalking、商用的卓豪(ZOHO)ManageEngine APM应用性能监控、以及云监控产品如听云(Server监控),这些APM监控产品大大方便了我们实时监控应用性能,并实现性能深度透视监控。 但是这些监控手段离真正能够定位性能问题还是有一段距离,有

    2024年02月14日
    浏览(28)
  • 【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?

    【面试题】JDK、JRE、JVM之间的关系? JDK (Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。 JRE (Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境

    2024年02月11日
    浏览(42)
  • 深度剖析JVM调优法则,神器Arthas从CPU/内存出发轻松掌握调优实战技巧

    场景一、CPU过高 CPU占用过高排查思路: step1:进行arthas step2:输入deashboard 如何不记得命令可以在控制台输入help step3:查看线程栈信息 从线程栈信息中定位到具体的java代码。 场景二、内存占用过高 内存占用过高排查思路: step1:进行arthas step2:输入deashboard 在dashboard页面中

    2024年02月06日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包