快速业务通道

使用Perf4J进行性能分析和监控 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
atch日志并传递给下游的 GraphingStatisticsAppenders和JmxAttributeStatisticsAppender。

两个GraphingStatisticsAppender被创建,其中一个表示平均执行时间,另一个输出每秒事务数。

一旦在Web服务器上启动了该Web应用,你就可以通过 http://servername/<rootContextLocation>/primes.jsp访问质数生成页面,其中 rootContextLocation由你的Web服务器配置决定(当然,为了方便,你也可以通过 http://servername/<rootContextLocation>/PrimeNumberGenerator.java查看 PrimeNumberGenerator源代码)。在primes.jsp页面中,你会看到很多用于质数生成的不同参数。你可以 改变参数,然后点击“ 生成质数”按钮,看看这些参数是如何影响质数产生时间的。在生成大量质数之 后,你可以通过三种途径来查看Perf4J输出:

原始的标准输出日志。

通过http://servername/<rootContextLocation>/perf4jGraphs访问图形化Servlet。你应该能 够看到平均执行时间和每秒事务数。

JMX监控也启用了。你可以通过Java SDK附带的jconsole应用查看Perf4J MBean值。这需要在启动Web 服务器时,使用-Dcom.sun.management.jmxremote命令行参数。然后,如果在运行Web服务 器的同一台机 器上启动jconsole就可以在“MBeans”标签中看到 “org.perf4j.StatisticsExposingMBean.Perf4J”的 数据值。

因为到现在为止你还没有启用任何TimingAspects支持@Profiled注解,你能够看到的唯一stop watch 输出就是“fullPageGeneration”标记。如果要启用TimingAspects,你可以使用AspectJ加载时编织。你 需要做的是,在启动Web服务器时使用AspectJ weaving代理命令行参数:

-javaagent:/path/to/aspectjweaver-1.6.1.jar

你可以在这里下载jar包: http://mirrors.ibiblio.org/pub/mirrors/maven2/org/aspectj/aspectjweaver/1.6.1/aspectjweaver -1.6.1.jar

当代理启用时,你可以在“generatePrime”和“randomFromRandomDotOrg”标记中看到stop watch的 输出。

使用Perf4J进行性能分析和监控(5)

时间:2011-10-16 infoq Alex Devine 译:崔康

陷阱与最佳实践

很多监控应用的方法,不论是针对性能、稳定性还是语义正确性,都无法最有效的体现它们的意图。 要么生成了太多的信息以至于难以分析这些数据,要么在需要信息的地方却得不到关键的数据。虽然所有 的监控都需要一些额外的开销,但是性能监控应该对这些引入的开销格外小心。以下建议可以帮助你最大 限度地利用 Perf4J,同时又将副作用降到最低:

在判断需要分析哪些方法和代码块时,首先把重点放在关键点上。在企业应用中,每当遇到性能瓶颈 时,都会存在很多“通常的疑点”:数 据库调用、运程方法调用、磁盘I/O、针对大型数据集的计算操作 。因此,你应该首先集中分析这些类型的操作。同时,因为这些操作花费几十甚至几百毫秒的时 间, Perf4J所带来的额外开销相对于本地执行时间来说微不足道,在实践中可以忽略不计。事实上,这也是 Perf4J故意使用System.currentTimeMillis(而不是System.nanoTime)计时代码块的原因之一:纳秒的 粒度在这种企业应用代码块中意 义并不大。

Perf4J把性能分析的工作委托给独立的线程或者进程。当使用AsyncCoalescingStatisticsAppender时 ,执行线程把日志事件推入到一个内存中的队列,由另外一个独立的线程发送这些日志 消息到下游 appender。因此,即使那些下游appender做了大量敏感的工作,如建立图表、更新MBean属性或者存储到 数据库中,对计时的代码 块的影响微乎其微,而且与这些下游appender做的工作多少无关。类似的,当 把计时日志写入文件用于解析和分析时

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号