Java 运行时监控,第 2 部分:编译后插装和性能监控
2008-08-27 14:31
387 查看
正如您在本系列(共三篇文章)的 第
1 部分 中所了解到的,监控 Java
应用程序的可用性和性能及其生产中的依赖性,这对于确保问题检测和加速问题诊断和修复至关重要。需要进行监视的类的源代码级插装具有 第 1 部分
所论述过的那些优势,但是这种方法通常都不可取或者不切实际。例如,很多您所感兴趣的监控点可能位于第三方组件中,而第三方组件的源代码您是不得而知的。在第 2
部分中,我着重介绍了无需修改原始源代码而插装 Java 类和资源的方法。
可选择的在源代码外编排插装的方法有:
截取
类包装
字节码插装
本文使用了 第 1 部分
中呈现的
通过截取进行 Java 插装
截取 的基本前提是通过一个截取构造和收集传入的入站与出站调用信息,对特定的调用模式进行转换。一个基本的截取程序的实现会:
获取对入站调用请求的当前时间。
取回出站响应的当前时间。
将运行时间作为两次度量的增量计算出来。
将调用的运行时间提交给应用程序性能管理(APM)系统。
图 1 展示了该流程:
图 1. 性能数据收集截取程序的基本流程
本文转自IBM Developerworks中国
请点击此处查看原文
1 部分 中所了解到的,监控 Java
应用程序的可用性和性能及其生产中的依赖性,这对于确保问题检测和加速问题诊断和修复至关重要。需要进行监视的类的源代码级插装具有 第 1 部分
所论述过的那些优势,但是这种方法通常都不可取或者不切实际。例如,很多您所感兴趣的监控点可能位于第三方组件中,而第三方组件的源代码您是不得而知的。在第 2
部分中,我着重介绍了无需修改原始源代码而插装 Java 类和资源的方法。
可选择的在源代码外编排插装的方法有:
截取
类包装
字节码插装
本文使用了 第 1 部分
中呈现的
ITracer接口来实现性能数据跟踪,依次举例阐明了这些技巧。
|
截取 的基本前提是通过一个截取构造和收集传入的入站与出站调用信息,对特定的调用模式进行转换。一个基本的截取程序的实现会:
获取对入站调用请求的当前时间。
取回出站响应的当前时间。
将运行时间作为两次度量的增量计算出来。
将调用的运行时间提交给应用程序性能管理(APM)系统。
图 1 展示了该流程:
图 1. 性能数据收集截取程序的基本流程
本文转自IBM Developerworks中国
请点击此处查看原文
相关文章推荐
- Java 运行时监控,第 2 部分: 编译后插装和性能监控
- Java 运行时监控,第 2 部分: 编译后插装和性能监控
- Java 运行时监控,第 2 部分: 编译后插装和性能监控
- Java 运行时监控,第 3 部分: 监控应用程序生态系统的性能与可用性
- Java 运行时监控,第 3 部分: 监控应用程序生态系统的性能与可用性
- Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控
- 关于 Java 性能监控您不知道的 5 件事,第 2 部分
- Java 运行时监控第 3 部分: 监控应用程序生态系统的性能与可用性
- Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控
- Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控
- 【知了堂学习笔记】java中的编译命令和JVM性能调优监控工具
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
- StopWatch 监控Java代码运行时间和分析性能
- Java 运行时监控之 1 :Java 系统运行时性能和可用性监控
- 实时 Java,第 2 部分: 比较编译技术
- StopWatch 监控Java代码运行时间和分析性能
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
- 使用JRockit Mission Control监控Java程序运行性能
- 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
- 使用JRockit Mission Control监控Java程序运行性能