谁能帮助我阅读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


编辑:
以下调用的目的是什么?它们的平均调用时间非常高。
scala.concurrent.impl.CallbackRunnable.run()
scala.concurrent.impl.Future$PromiseCompletingRunnable.run()
org.jboss.netty.handler.codec.http.HttpRequestDecoder.unfoldAndFireMessageReceived()

编辑:
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
}
}
}
}
}发布于 2016-03-27 13:06:33
我不确定这是否会在一年后对你有所帮助,但我认为你遇到的性能问题与Play、Akka或Netty无关。
问题将出现在您的代码业务逻辑或数据库访问中。你看到的PromiseCompletingRunnable和unfoldAndFireMessageReceived的大时代是误导性的。newrelic以一种错误和误导性的方式报道了这一次。请阅读这篇文章:
Extremely slow play framework 2.3 request handling code
我遇到了类似的问题,我的问题在数据库中,但newrelic在netty中报告了很大的次数。
我希望这会对你有所帮助。
https://stackoverflow.com/questions/29675074
复制相似问题