java虚拟机性能监控工具介绍

简介:

最近在做性能测试,在性能调优过程中查阅了些虚拟机相关的知识,下面对虚拟机所用的性能监控的工具做个简单的介绍和汇总。
一、JDK命令行工具
  1.jps:虚拟机进程状况工具
  列出正在运行的虚拟机进程,显示虚拟机执行祝列的名称,已经这些进程的本地虚拟机的唯一ID。此命令虽然功能单一,但它是使用频率最高的JDK命令工具。
Jps 命令格式:
jps  [options] [hostid]
2. jstat:虚拟机统计信息监视工具
  jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。在没有GUI图形界面,只提供了纯文本控制台环境服务器上,它将是运行期定位虚拟机性能问题的首选工具。
jstat命令格式:
jstat [option vmid [ interval [s|ms] [count] ] ]
参数interval和count代表查询的间隔和次数,如果省略这两个参数,说明只查询一次。
例如:jstat –gc 3232 500 20
命令含义为:每500ms查询一次进行3232垃圾收集器的状况,一共查询20次。
选项option代表用户希望查询虚拟机信息,主要分为3类;类装载、垃圾收集和运行期编译状况。
3. jinfo:Java配置信息工具
  jinfo(Configuration Info for Java)实时查看和调整虚拟机的各项参数。想知道未被显示指定的参数的系统默认值,可以使用jinfo的-flag选项进行查询,jinfo还可以使用-sysprops选项把虚拟机进行的System.getProperties()的内容打印出来。
jinfo命令格式:
jinfo [option] pid
4.jmap:Java内存映像工具
  jmap(Memory Map for Java)于生成堆转储快照,查询finalize执行队列,Java堆和永久代的详细信息等。
jmap命令格式:
jmap [option] vmid
5.jstack:Java堆栈跟踪工具
  jstack(Stack Trace for Java)用于生成虚拟机当前时刻的线程快照,定位线程出现长时间停顿的原因。
jstack命令格式:
jstack [option] vmid

  二、 JDK可视化工具
  1. Jconsole:java监视与管理控制台
JConsole可以说是前面介绍的所有功能性JDK工具的一个可视化版本,几乎实现了JVM Manage API中提供的所有的功能。
通过JDK/bin目录下的“jconsole.exe”启动JConsole。如图1,双击其中一个进程即可开始监控,也可以使用“远程进程”功能来连接远程服务器,对远程虚拟机进行监控。

  

图1


图2


 1)图2“概述”页显示整个虚拟机主要运行数据的概览。
2)内存监控
“内存”页签相当于可视化的jstat命令,用于监视收集器管理的虚拟机内存(java堆和永久代)的变化趋势。
3)线程监控
“线程”页签的功能相当于可视化的jstack命令,遇到线程停顿的时候可以时候线程监控进行分析
2.VisualVM:多合一故障处理工具
  VisualVM它除了运行监视、故障处理外,还提供了很多其他方面的功能。如性能分析(profiling),VisualVM的性能分析功能甚至比起JProfiler专业且收费工具都不会逊色多少,而且VisualVM还有一个很大的优点:不需要被监视的程序基于特殊的Agent运行,因此它对应用程序的实际性能影响很小,使得他可以直接应用在生产环境中。
1)启动VisualVM
通过JDK/bin目录下的“jvisualvm”启动VisualVM,可以根据需要给VisualVM装扩展插件,点击“工具”-->“插件”菜单。
2)生成和浏览堆转储快照
可以通过以下2种方式生成:
在“应用程序”窗口中右键单机应用程序节点,然后选择“堆dump”;
在“应用程序”窗口双击应用晨曦节点打开应用程序标签,然后再“监视”标签中单击“堆dump”。
生成了dump文件之后,应用程序页签将在堆的应用程序下增加以[heapdump]开头的子节点,并在主页签中打开该转储快照,如图3。


“摘要”面板可以看到应用程序dump时运行的参数、线程堆栈等信息。
“类”面板以类为统计口径统计的类的实例数量和容量信息。
“实例”面板需要通过“类”面板进去,在“类”中选择关系的类后点击,即可在实例中查看此类的实例信息。
3)分析程序性能
在Profiler页签中,提供了程序运行期间方法级的CPU执行时间分析及内存烦心,进行profiling肯定会对程序运行性能有比较大的影响,所以一般不在生产环境中使用这项功能。
选择“cpu”或“内存”,VisualVM会记录这段时间中应用程序执行过的方法。Cpu分析会统计每个方法执行的次数、执行耗时。分词分析则会统计每个方法关联对象数及这些对象所占用的空间,如图4。

图4

   



最新内容请见作者的GitHub页:http://qaseven.github.io/

   

目录
相关文章
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
存储 算法 Java
Java虚拟机(JVM)的内存管理与性能优化
本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
|
Java
Java常见JVM虚拟机指令(47个)
Java常见JVM虚拟机指令(47个)
178 3
Java常见JVM虚拟机指令(47个)
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
323 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
1675 5
|
运维 监控 Java
(十)JVM成神路之线上故障排查、性能监控工具分析及各线上问题排错实战
经过前述九章的JVM知识学习后,咱们对于JVM的整体知识体系已经有了全面的认知。但前面的章节中,更多的是停留在理论上进行阐述,而本章节中则更多的会分析JVM的实战操作。
512 1
|
监控 Oracle Java
(一)JVM成神路之初识虚拟机 - 探寻Java虚拟机的前世今生之秘
JVM(Java Virtual Machine)Java虚拟机的概念大家都不陌生,Java之所以可以做到“一次编译,到处运行”的跨平台性,其根本原因就在于JVM。JVM是建立在操作系统(OS)之上的,Java虚拟机屏蔽了开发人员与操作系统的直接接触,我们在通过Java编写程序时,只需要负责编写Java代码即可,关于具体的执行则会由JVM加载字节码后翻译成机械指令交给OS执行。
442 1
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
173 0
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
244 0
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
273 0

热门文章

最新文章