当前位置:首页 > 内存 > 正文

arthas内存分析

  • 内存
  • 2024-08-27 04:27:29
  • 7570

一、常用JVM调优工具


JVM优化过程中用到的常用工具,主要包括命令行工具和图形界面工具。首先,使用jps、jinfo、jstat、jstack和jmap等命令行工具进行内存使用、线程状态、类加载和垃圾收集等基本性能监控和参数显示。不过通过这些命令来解析分析GC日志和dump文件可能不够直观,所以图形化工具更加实用。


自带工具


jconsole:作为内存监控工具,提供Java应用程序的运行概况,堆内存监控支持同时显示CPU利用率和线程状态。


jvisualvm:比较全面的Java虚拟机监控器,包括CPU、堆、类和线程监控,并支持远程连接分析。


2.第三方工具


Arthas:阿里巴巴开源的Java诊断工具,集成了调试、性能监控、堆栈分析等JDK和JVM功能,适合在线问题本土化。


MemoryAnalyzer(MAT):功能强大的Java堆内存分析器,可以分析堆内存泄漏,可以集成到Eclipse中或作为独立工具。


3.在线分析平台


perfma:提供JVM参数、线程和内存转储的在线分析服务。


GCEasy:GC协议分析的在线平台。


4.本地分析工具


gcviewer:分析本地GC日志的工具。


这些工具是JVM优化的重要辅助工具。通过它们我们可以更直观、更深入地了解和优化Java应用程序的性能。



二、Java诊断工具Arthas常见命令(超详细实战教程)


在Java应用中,面对众多微服务带来的复杂问题,阿里开源诊断工具Arthas显得尤为重要。不仅支持无需重启即可在线排查问题,还可以动态跟踪代码,实时监控JVM状态,适用于各种JDK6+平台。Arthas因其命令行交互模式和丰富的Tab补全功能而受到开发者的青睐。目前它在GitHub上有29,400颗星。


Arthas的强大功能包括但不限于监控线程、内存、GC和执行状态、分析参数输入/返回值/异常、识别应用热点甚至火焰生成。图形帮助快速定位和解决疑难问题。以下是一些常用命令的便捷教程:


启动arthas-demo案例程序:首先下载并运行。
启动诊断工具:下载并运行它。
诊断工具使用attach函数选择诊断的目标Java进程,输入1并回车。
使用help命令显示Arthas命令的帮助。
仪表板控制用于实时数据监控,如显示CPU、内存等。
thread命令用于显示线程ID堆栈,如thread1|grep'main('查找主类。
sc和sm命令用于查找类和加载的函数分别是类的,并支持-d参数获取详细信息
可以使用jad命令反编译代码,如me
通过ognl命令动态执行代码支持执行。OGNL表达式和条件表达式的watch命令可用于显示函数参数、返回值和异常信息,以及使用条件和繁琐的过滤
此外,Arthas还可以。提供了sysprop和jvm命令来获取系统信息,以及reset命令来重置增强类。在实践中,Arthas可以帮助排查函数调用异常和HTTP请求问题,包括跟踪过滤器和函数。获取有关SpringContext和bean的信息。


简而言之,Arthas是一名Java开发人员。用户必备的诊断工具,掌握其命令行操作可以大大提高解决问题的效率