首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Play框架作为后端的NewRelic中的慢事务

使用Play框架作为后端的NewRelic中的慢事务
EN

Stack Overflow用户
提问于 2015-04-16 20:42:58
回答 1查看 351关注 0票数 1

谁能帮助我阅读NewRelic摘要和跟踪详细信息。以下屏幕截图具有单个事务的跟踪,这些事务不会创建对数据库的任何查询。这只是一个简单的查询,只有几行Scala模板代码,它呈现HTML页面并将其返回给客户端。这只是当前在生产环境中运行的单个事务。Production有大量更复杂的事务运行,这些事务会对Mongo、Maria、Queue等进行大量的外部调用。

跟踪是否揭示了瓶颈可能在哪里?例如,我们是否耗尽了线程或工作线程。正如我所说的,大多数事务都会做大量的web外部调用,这可能会让单线程保留相当长的时间。如何才能真正研究在Play应用程序中线程或工作线程是否耗尽?我们使用的是2.1.4。

在接下来的调用中到底发生了什么?

Promise.apply 21.406ms

异步等待21.406ms

Actor.tell 48.366ms

PlayDefaultUpstreamHandler 6.292ms

编辑:

以下调用的目的是什么?它们的平均调用时间非常高。

代码语言:javascript
复制
scala.concurrent.impl.CallbackRunnable.run()
scala.concurrent.impl.Future$PromiseCompletingRunnable.run()
org.jboss.netty.handler.codec.http.HttpRequestDecoder.unfoldAndFireMessageReceived()

编辑:

代码语言:javascript
复制
play {
  akka {
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
    loglevel = WARNING
    actor {
      default-dispatcher = {
        fork-join-executor {
          parallelism-min = 350
          parallelism-max = 350
        }
      }
      exports = {
        fork-join-executor {
          parallelism-min = 10
          parallelism-max = 10
        }
      }
    }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2016-03-27 13:06:33

我不确定这是否会在一年后对你有所帮助,但我认为你遇到的性能问题与Play、Akka或Netty无关。

问题将出现在您的代码业务逻辑或数据库访问中。你看到的PromiseCompletingRunnable和unfoldAndFireMessageReceived的大时代是误导性的。newrelic以一种错误和误导性的方式报道了这一次。请阅读这篇文章:

Extremely slow play framework 2.3 request handling code

我遇到了类似的问题,我的问题在数据库中,但newrelic在netty中报告了很大的次数。

我希望这会对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29675074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档