使用Perf4J进行性能分析和监控 - 编程入门网
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代理命令行参数:
你可以在这里下载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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |