Java的监控与性能调优工具很多,除了JDK自带的一些工具外,还有像Jprofilerz这样非常好用的商业工具。下面对JDK自带的一些工具做个简要说明,以便需要时找到最合适的工具。
JProfiler在java程序性能调试方面是翘楚,无须赘言,参见:《Jprofiler6的安装与使用说明》。
下面为JDK自带的一些工具:
所有工具都在JDK的bin目录,而在这些工具中,除jvisualvm与jconsole为GUI图形化,其他均为命令行。
jps: 即Java Virtual Machine Process Status Tool的缩写,用于查看JVM进程状态的工具。与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jvisualvm:可监控、性能评估、故障诊断主机上所有java进程的cpu,内存,线程使用情况。
jinfo:可以输出并修改运行时的java进程的opts。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jstat -class pid 显示加载class的数量,及所占空间等信息。
jstat -compiler pid 显示VM实时编译的数量等信息。
jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity pid 可以显示,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:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole:可用图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM。
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,非常易用,而且功能非常强。用法:直接输入jconsole即可。
分享到:
相关推荐
本文将详细介绍几种常见的JVM性能调优工具,并通过实际案例帮助读者更好地理解和应用这些工具。 #### 一、jps (Java Virtual Machine Process Status Tool) `jps`是JDK自带的一个简单实用的工具,用于列出当前正在...
《阿里+Java+开发手册、阿里巴巴Java性能调优实战》是两本专注于Java开发和性能优化的专业书籍,分别以嵩山版和华山版的形式呈现,由阿里巴巴集团编写。这两本书籍结合了阿里巴巴在实际业务场景中的丰富经验,旨在...
在Java性能调优中,这意味着我们需要找到限制系统性能的瓶颈,并对其进行优化。 2. **Amdahl定律**:该定律指出,系统的加速比取决于可以被并行化的部分以及这些部分的优化程度。这意味着即使对一小部分代码进行...
在Java应用程序的性能调优过程中,掌握一系列命令行工具是至关重要的。这些工具可以帮助开发者监控应用程序的运行状态,诊断性能瓶颈,并对JVM进行调优。以下是一些常用的Java性能调优命令及其用法和相关知识点。 1...
Java性能调优是一个复杂而重要的领域,涉及到程序的运行效率、资源消耗以及系统的稳定性。这份“Java性能调优大全”提供了全面的指南,包括VisualVM的使用、JVM的性能优化、OMM(可能是指Oracle Management Monitor...
在Java生产环境中,性能监控与调优是保证系统稳定、高效运行的关键环节。这份"Java生产环境下性能监控与调优详解课程笔记(完整版)"涵盖了多个重要的知识点,旨在帮助开发者和运维人员提升Java应用的性能。 一、Java...
通过阅读《阿里巴巴Java性能调优实战(2021华山版)》,读者不仅可以掌握Java性能调优的理论知识,还能学习到阿里巴巴在实际业务中总结的宝贵经验,这对于提升个人或团队的开发效率,保障系统稳定性和性能具有极大的...
在Java开发中,性能调优是一项关键任务,它涉及到程序运行效率、资源利用和系统稳定性。本指南主要关注Java虚拟机(JVM)调优、编码最佳实践以及微基准测试的重要性。 **基本规则** 1. **不要轻信,要测试**:...
本专题“47-Java性能调优实战”聚焦于电商系统的分布式事务处理,旨在帮助开发者掌握如何有效地解决内存持续上升的问题以及优化网络通信和NIO实现。 首先,内存持续上升是Java应用中常见的性能问题,可能导致系统...
在实际应用中,这些工具和技术对于优化Java应用性能、定位问题以及确保系统健康运行至关重要。 首先,我们要了解JDK自带的一些监控工具。`jconsole`是一个图形化的JVM监控工具,可以实时查看内存、线程、类加载等...
下面将详细介绍Java EE性能调优的相关知识点。 1. **JVM参数调优**: - **内存配置**:调整初始堆大小(`-Xms`)和最大堆大小(`-Xmx`),以适应应用的内存需求,防止频繁的垃圾收集。 - **垃圾收集器选择**:...
本教程通过理论与实践相结合的方式,帮助Java开发者掌握性能调优的全面技能,无论是在开发阶段还是在维护阶段,都能有效地提升软件系统的整体表现。对于希望提升Java应用性能的专业人士来说,这是一份不可或缺的学习...
本文将深入探讨“性能调优工具”及其在操作系统中的应用,尤其是那些能一键获取CPU等模块指标的工具。我们将讨论如何通过这些工具来监控和调整系统性能,以及它们在实际工作中的价值。 首先,CPU作为计算机的核心...
【JAVA WEB系统性能调优】 在开发和维护Java Web应用程序时,性能调优是一项至关重要的任务,它能够确保系统的高效运行,减少延迟,提高用户体验。本文档将详细讲解Java Web系统性能调优的过程,主要关注JVM(Java ...
操作系统基准性能调优分析工具是IT领域中一个关键的组件,尤其对于系统管理员和开发者来说,这类工具能够帮助他们深入理解系统的运行状况,优化性能,解决问题。标题中的“客户端”通常指的是用户界面或者用于与...
3. **监控工具**:利用JMX(Java Management Extensions)、VisualVM等工具实时监控系统状态,收集必要的性能数据。 #### 四、调优策略 1. **JVM参数调整** - **内存设置**:合理分配堆内存大小(如-Xms、-Xmx)...
本篇文章将深入探讨基于Java虚拟机内存模型的性能调优方法,帮助开发者优化应用程序,提高系统效率。 1. **Java内存模型** Java内存模型,也称为JVM内存结构,主要包括堆内存、栈内存、方法区、程序计数器和本地...
特别是在Java应用领域,如何有效地进行性能调优,特别是内存调优,对于提升整体系统的承载能力具有重要意义。 #### 二、内存管理的重要性 在大型系统中,随着新特性的不断加入,对内存的需求也在不断增长。如何...
【描述】本资料将全面解析LoadRunner这一业界领先的性能测试工具,旨在帮助读者掌握如何利用LoadRunner进行性能测试、理解测试流程、实施有效的监控以及进行性能调优。资料中可能涵盖了从基础概念到高级技巧,包括...