【问题标题】:How to profile performance under load?如何分析负载下的性能?
【发布时间】:2013-02-13 04:23:21
【问题描述】:

我有一个 Web 服务器,它有一些请求在重负载下表现不佳。我尝试使用常规的久经考验的技术,但它们存在各种问题。

尝试过的技术

  1. Yourkit 中的采样/跟踪分析
    • 我无法在负载下使用分析器,因为只有少数特定请求表现不佳
    • 仅测试单个请求不会重现性能问题
  2. 线程转储
    • 我尝试以固定的时间间隔进行线程转储,但如果时间间隔很大,则很难判断到底什么是慢的,如果时间间隔很短,则会过多地影响服务器的性能特征

当服务器处于负载状态时,如何分析单个请求的性能?

【问题讨论】:

  • APM(应用程序性能管理)工具,如 jennifer、appDynamics... 等,看起来比分析器更适合您的情况。 profiler 旨在调整有限的请求,但 APM 旨在监控和管理系统的性能。
  • @fglez 它不是一个特定的应用程序容器。问题出在我们的代码中。
  • @dgregory APM 对我没有帮助,因为我没有试图弄清楚整体性能,实际上我有一个性能不佳的请求,需要深入研究其中的细节。
  • 我发现AspectJ 非常有用。我可以轻松地跟踪方法的进入和退出,并相对快速地深入研究热点。然后我什至可以更改实现,而无需经历完整的编译/构建/部署周期。
  • @Pyrolistical 不同的服务器(尤其是专有服务器)具有不同的监控/调试/跟踪机制,这可能会对您有所帮助。

标签: java performance web-applications profiling thread-dump


【解决方案1】:

看看http://www.spf4j.org,我使用这个库在java中以最小的开销进行连续分析...... 有 api 来监视代码的执行,对性能的影响也最小 我最近为应用配置文件添加了新的可视化:http://blogs.zoltran.com 从trunk获取最新版本并试用!

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-08
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多