`
zhaoshijie
  • 浏览: 2262641 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java内存监控工具及命令

 
阅读更多
关键字:内存监控工具及命令

一篇非常好的内存监控知识,分享给爱学习的亲们.....

jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

jprofiler:是一个非常优秀的内存监控工具,可以监控tomcat、eclipse等

接下来是对这些工具的详细介绍:

从最简单的jstat工具开始:我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其id。jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打)

接下来是jstat,我之所以这次调优Liferay portal是因为,liferay在默认的情况下,并发用户一多就会产生perm out of momery异常。虽然很开就解决了,但发现对VM内存使用量监控的重要性。通过google,很快的发现了jstat这个工具。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=String 3024可以将3024进程的内存heap输出出来到String文件里。

jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt  pid 如:查看2788的MaxPerm大小可以用  jinfo -flag MaxPermSize 2788。

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打 jconsole,选则进程就可以了。

以下是这些工具的SUN官方说明:
jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html
jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html
jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html
jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

附加:windows查看进程号,由于任务管理器默认的情况下是不显示进程id号的,所以可以通过如下方法加上。ctrl+alt+del打开任务管理器,选择‘进程’选项卡,点‘查看’->'选择列'->加上'PID',就可以了。


分享到:
评论

相关推荐

    Java内存泄露_JVM监控工具介绍

    "Java内存泄露_JVM监控工具介绍" Java内存泄露是Java开发中常见的一种问题,发生内存泄露可能会导致Java应用程序崩溃或性能下降。在Java中,内存泄露的原因非常多样,例如,静态变量、循环引用、数据库连接池、...

    java 内存监控

    本文将深入探讨Java内存监控的相关知识点,并提供实用的命令工具来帮助你查找和解决常见的服务器内存溢出错误。 首先,我们要理解Java内存模型。Java虚拟机(JVM)内存主要分为以下几部分: 1. **堆内存**:这是...

    Java性能监控工具

    `jconsole`和`jvisualvm`都是图形化的性能监控工具,它们提供了丰富的界面,可以实时监控Java应用的CPU使用、内存分配、线程状态等。`jvisualvm`还支持生成各种报告和分析堆内存转储。 `jhat`是一个命令行工具,...

    JAVA JVM内存监控工具总结

    【Java JVM内存监控工具详解】 Java JVM内存监控是优化Java应用程序性能的关键环节,而VisualVM作为一款集成多种JDK命令行工具的可视化平台,提供了强大的分析功能。它包含的工具如jps、jstat、jmap、jinfo、jstack...

    JAVA内存泄漏分析工具

    "JAVA内存泄漏分析工具"正是一款用于解决此类问题的专业工具,它能帮助开发者定位并修复内存相关的问题,如内存泄漏和内存溢出。 内存泄漏是程序在申请内存后,无法释放已申请的内存空间,一次小的内存泄漏可能看似...

    java内存泄露、溢出检查方法和工具

    本文将深入探讨如何检测和分析Java内存泄露与溢出,并介绍一种常用的工具——Memory Analyzer(MAT)。 首先,理解内存泄露的概念至关重要。在Java中,内存泄露通常发生在对象不再被程序使用但仍然保持在内存中,...

    jvm内存监控工具使用

    ### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...

    java 内存溢出分析工具 HeapAnalyzer

    HeapAnalyzer是一款Java内存分析工具,由IBM开发,它可以帮助开发者检查和分析Java堆内存的状态,找出可能存在的内存泄漏或者过度占用内存的对象。通过分析heap dump文件,HeapAnalyzer可以展示对象的分布情况,识别...

    IBM内存分析工具(java)

    IBM内存分析工具,作为一个专业的Java内存诊断工具,专门针对Java内存溢出(Memory Overflow)和内存泄露(Memory Leak)问题进行深度分析,帮助开发者定位并解决这些问题。本文将详细介绍IBM内存分析工具的功能、...

    【转】Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    Java内存泄露是编程中一个严重的问题,它可能导致系统性能下降,甚至系统崩溃。JVM(Java虚拟机)提供了多种监控工具来帮助开发者检测和解决这类问题。本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、...

    ibm HeapAnalyzer java内存分析工具 ha457.jar

    IBM HeapAnalyzer是一款强大的Java内存分析工具,主要用于诊断和解决Java应用程序中的内存泄漏问题。...在实际开发中,结合JConsole、JVisualVM等其他JVM监控工具,可以更全面地理解和优化Java应用的内存使用情况。

    java桌面监控程序

    4. **JDK工具**:除了上述提到的编译和运行命令外,还需要安装Java Development Kit (JDK),它包含了开发Java应用程序所需的所有工具和库文件。 #### 五、注意事项 - 在开发过程中,需要注意安全性问题,比如确保...

    java-虚拟机 操作系统监控工具-源码

    java监控工具源码-可集成到项目使用 内存状态、CPU负载、磁盘IO吞吐率、磁盘健康状态、网卡IO 监控 适合用于服务健康监控、线上调优、排查问题、性能测试等场景 支持操作系统监控:内存状态、CPU负载、磁盘IO及吞吐...

    java虚拟机性能监控

    #### 四、Java虚拟机性能监控工具 根据给定材料中的内容,我们可以了解到Java虚拟机性能监控涉及到了多个层面的工具,包括但不限于: - **网络管理系统**:用于监控网络设备的状态,如路由器、交换机等。 - **操作...

    java监控开发示例

    这个“java监控开发示例”旨在提供一种方法来实现这一目标,通过Java代码远程监控系统资源,如CPU使用率、内存占用、磁盘空间以及网络状态等。 首先,我们需要理解Java中用于系统监控的基础概念和技术。Java提供了...

    Java监控工具.pdf

    Java 监控工具是了解和优化Java应用程序性能的关键。这些工具通常包含在Java Development Kit (JDK) 中,为开发者提供了深入洞察JVM (Java Virtual Machine) 运行时行为的能力。以下是一些主要的Java监控工具及其...

    Java虚拟机监控方案.docx

    - **栈内存监控**:显示最大值,并通过波谱图跟踪各时间点的栈内存使用情况。 - **jstat工具**:定时获取堆内存和永久代的使用情况。 6. **线程监控**: - **线程数量**:实时显示活动线程和守护线程数,以及...

    java IBM websphere 内存溢出 javacore deapdump CPU内存分析工具

    在处理Java内存溢出问题时,除了使用上述工具外,还需要理解以下几个关键概念: 1. 堆内存:Java对象主要存储在堆内存中,过大或过多的对象可能导致堆溢出。 2. 非堆内存:包括JVM自身使用的内存(如方法区、元空间...

    ibm的java内存泄漏检测工具

    IBM的Java内存泄漏检测工具是专门用于解决Java应用程序中出现的内存管理问题的高效诊断工具。在实际的项目开发和运维过程中,内存泄漏是常见的性能瓶颈,可能导致系统响应变慢,甚至崩溃。IBM的这款工具提供了强大的...

Global site tag (gtag.js) - Google Analytics