自从接触JAVA后,一直有这个内存溢出或内存泄漏,但是一直没有总结,对这类的问题,参考了别人的经验,梳理一下知识。
监控和管理工具
1、jconsole Java的监测和管理控制台- JMX兼容Java虚拟机监控图形工具。它可以监控本地和远程JVM。
jconsole [ options ] [ pid | [ host:port ]] options -interval=n 更新时间间隔 (默认4S) ……
2、jps(jps - Java Virtual Machine Process Status Tool)虚拟机进程状况工具
JPS工具列出了Java虚拟机对目标系统。该工具是有限的信息在JVM具有访问权限。
如果JPS运行在没有指定服务器,它会寻找JVM在本地主机。如果开始一个服务器,它会寻找在所指向的主机的JVM,使用指定的协议和端口。一个jstatd过程被认为是在目标主机上运行。
JPS命令将报告本地虚拟机标识符或lvmid,每个JVM在目标系统上发现的的lvmid通常是,但不一定,JVM进程标识符用于操作系统的过程。没有选择,会列出每个Java应用的JPS lvmid其次是应用程序的类的名称或JAR文件的名字的缩写形式。类的名称或JAR文件的名字的缩写形式,忽略了类的封装信息或JAR文件的路径信息。
JPS命令使用Java发射器找到类名和参数传递的主要方法。如果目标JVM启动一个自定义的发射器,类的名称(或JAR文件名)和主要方法的参数将不可用。在这种情况下,JPS命令将输出字符串未知的类名称或JAR文件名为主要方法的参数。
由JPS命令生成JVM的列表可由授予主体运行命令的权限有限。该命令将只列出JVM的原理具有访问权限的操作系统特定的访问控制机制。
jps [ options ] [ hostid ] -q 忽略输出的类名。只输出pid。 -m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。 -l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。 -v 输出传给JVM的参数。 -V 输出通过标记的文件传递给JVM的参数 (.hotspotrc文件,或者是通过参数-XX:Flags=<filename>指定的文件。 -J 用于传递jvm项到由javac调用的java加载器中,例如,“-J-Xms48m”将把启动内存设置为48M,使用-J项可以非常方便的向基于Java的开发的底层虚拟机应用程序传递参数。
[protocol:][[//]hostname][:port][/servername]
3、jstat(JVM jstat Daemon)虚拟机统计信息监视工具(重要)
class Statistics on the behavior of the class loader.
compiler Statistics of the behavior of the HotSpot Just-in-Time compiler.
gc Statistics of the behavior of the garbage collected heap.
gccapacity Statistics of the capacities of the generations and their corresponding spaces.
gccause Summary of garbage collection statistics (same as -gcutil), with the cause of the last and current (if applicable) garbage collection events.
gcnew Statistics of the behavior of the new generation.
gcnewcapacity Statistics of the sizes of the new generations and its corresponding spaces.
gcold Statistics of the behavior of the old and permanent generations.
gcoldcapacity Statistics of the sizes of the old generation.
gcpermcapacity Statistics of the sizes of the permanent generation.
gcutil Summary of garbage collection statistics.
printcompilation HotSpot compilation method statistics.
故障排除工具
1、jinfo(Configuration Info for Java)Java配置信息工具
配置信息的Java打印配置信息对于一个给定的过程或核心文件或远程调试服务器。
2、jmap(Memory Map for Java)Java内存映像工具
对于Java内存地图打印共享对象的内存映射的过程或核心文件或远程调试服务器或堆内存的详细信息。
jmap当前不可用在Windows平台上Linux Itanium平台。
2) jmap -dump:format=b,file=heap.bin <pid>
把该文件保存到本地,
3)使用MAT分析工具
定位到异常的位置,分析源码。
3、jhat:虚拟机堆转储快照分析工具
4、jstack(Stack Trace for Java)Java堆栈跟踪工具
堆栈跟踪Java -打印一个线程堆栈跟踪一个给定的过程或核心文件或远程调试服务器。
HSDIS:JIT生成代码反汇编
集成工具
VisualVM:多合一故障处理工具
Memory Analyzer Tool:内存分析(内存溢出,OOM)
相关推荐
JVM(Java Virtual Machine)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及处理线程和类加载。为了有效地监控和调试Java应用程序,Oracle JDK提供了多种强大的命令行工具,如jconsole、jmap、jstat...
jvisualvm是一款功能更全面的JVM监控工具,它不仅能够监控JVM的状态,还可以进行垃圾回收管理、线程分析等功能。jvisualvm的界面友好,非常适合进行深入的性能分析工作。 **使用步骤:** 1. **启动jvisualvm**:...
1. **JConsole**:这是Java SDK自带的一个图形化监控工具,可以查看JVM的内存使用情况、线程状态、类加载情况等。 2. **VisualVM**:功能更为强大的多合一JVM分析工具,提供CPU和内存分析、线程快照、方法Profiling...
Java虚拟机(JVM)监控工具是确保Java应用程序性能和稳定性的重要资源。这些工具可以帮助开发者监控和分析JVM的运行时状态,包括内存使用、垃圾回收行为、线程活动等关键指标。本文将详细介绍如何在Java中使用JVM...
### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...
JVM 监控管理及故障诊断工具 在 Java 虚拟机(JVM)中,监控管理及故障诊断是非常重要的,以确保 JVM 的稳定运行和高效执行。本文将介绍三种常用的 JVM 监控管理及故障诊断工具:jps、jstat 和 jstatd。 1. jps - ...
### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...
VisualVM是一款强大的Java虚拟机(JVM)性能分析和监视工具,由Oracle公司开发并提供。它集成了一系列功能,如内存分析...无论是本地还是远程,VisualVM都是一个强大且易用的JVM工具,值得在日常开发和调优工作中使用。
本文将详细介绍JVM自带的一些核心监控工具,包括jstack、jconsole、jinfo、jmap、jdb和jstat等命令的使用方法。 #### jstack **概述:** jstack是一个强大的诊断工具,主要用于获取JVM中的线程快照。当Java程序...
例如,VisualVM是Oracle提供的一款强大的多合一JVM工具,它包含了丰富的功能,如内存分析、线程监控、类加载统计以及CPU和GC(垃圾收集)性能监视等。 1. **线程监控**:在Java应用中,线程是执行任务的基本单位。...
- **JMX(Java Management Extensions)**:允许创建和注册MBeans来管理Java应用程序,可以远程监控和管理JVM。 4. **JVM参数调优**: - `-Xms` 和 `-Xmx`:设置堆内存的初始大小和最大大小。 - `-XX:NewRatio`...
arthas阿里的开源jvm监控工具,可以用于JVM的调优,快速生成JVM的运行图,方便开发,具体可见阿里的git
VisualVM是一款强大的JVM(Java Virtual Machine)监控和性能分析工具,由Oracle公司开发并提供。它集成在Java SDK中,默认位于%JAVA_HOME%\bin目录下,方便开发者直接使用。这款工具提供了丰富的功能,帮助Java...
jvisualvm,作为Oracle JDK自带的一款强大的性能分析工具,提供了丰富的功能,帮助开发者深入了解JVM内部运行状态,进行性能瓶颈的定位和优化。本文将深入探讨如何使用jvisualvm进行JVM监控,并结合实例解析优化策略...
Java虚拟机(JVM)监控工具对于理解和优化Java应用程序的性能至关重要。这些工具可以帮助开发者诊断内存泄漏、监控垃圾收集(GC)活动、查看线程状态以及检查JVM配置。以下是几种常用的JVM监控工具的详细介绍: 1. ...
idea 插件visulgc 监控jvm
【标题】"hpjmeter jvm gc监控工具"是一个专门用于监视Java虚拟机(JVM)内存管理和垃圾收集(GC)行为的实用程序。HPjmeter由惠普公司开发,它提供了一种可视化的方式来理解JVM性能,特别是与垃圾收集相关的活动。...
总结来说,Idea插件JProfiler11是Java开发者的得力助手,它将复杂的JVM内存管理和性能优化变得简单易行。熟练掌握JProfiler11的使用,不仅可以提高Java应用的性能,也能提升开发者的专业技能。在日常开发中,适时...