Performance NewRelic中以Play Framework作为后端的事务处理速度较慢
有人能帮我读一下NewRelic的摘要和跟踪细节吗。下面的屏幕截图具有单个事务的跟踪,不会创建对数据库的任何查询。这只是一个简单的查询,只有几行Scala模板代码,它呈现HTML页面并将其返回给客户端。这只是当前正在生产中运行的单个事务。生产有大量更复杂的事务在运行,这些事务对Mongo、Maria、Queue等进行大量的外部调用 追踪是否揭示了瓶颈可能在哪里?例如,我们是否正在耗尽线程或工作线程。正如我所说的,大多数事务都会执行大量web外部调用,这可能会在相当长的时间内保留单个线程。如何才能真正研究线程或工作线程是否在Play应用程序中耗尽?我们使用的是2.1.4 在下面的调用中实际发生了什么 承诺。应用21.406ms 异步等待21.406ms 演员:48.366ms PlayDefaultUpstreamHandler 6.292ms 编辑: 以下通话的目的是什么?这些电话的平均通话时间超高Performance NewRelic中以Play Framework作为后端的事务处理速度较慢,performance,scala,playframework,netty,newrelic,Performance,Scala,Playframework,Netty,Newrelic,有人能帮我读一下NewRelic的摘要和跟踪细节吗。下面的屏幕截图具有单个事务的跟踪,不会创建对数据库的任何查询。这只是一个简单的查询,只有几行Scala模板代码,它呈现HTML页面并将其返回给客户端。这只是当前正在生产中运行的单个事务。生产有大量更复杂的事务在运行,这些事务对Mongo、Maria、Queue等进行大量的外部调用 追踪是否揭示了瓶颈可能在哪里?例如,我们是否正在耗尽线程或工作线程。正如我所说的,大多数事务都会执行大量web外部调用,这可能会在相当长的时间内保留单个线程。如何才能
scala.concurrent.impl.CallbackRunnable.run()
scala.concurrent.impl.Future$PromiseCompletingRunnable.run()
org.jboss.netty.handler.codec.http.HttpRequestDecoder.unfoldAndFireMessageReceived()
编辑:
我不确定这是否会在一年后对你有所帮助,但我认为你遇到的表现问题与比赛、阿克卡或内蒂无关 问题将出现在您的代码业务逻辑或数据库访问中。你看到的PromiseCompletingRunnable和UnlopsandFireMessageReceived的重要时刻是误导性的。newrelic以错误和误导的方式报道了这一次。请阅读此帖: 我也遇到了类似的问题,我的问题也在数据库中,但newrelic在netty中报道了很多次
我希望这对您有所帮助。请使用akka/线程池配置更新线程,好吗?我也有类似的行为。有时高吞吐量的情况下,我会得到良好的未来$PromiseCompletingRunnable.run()次,有时低吞吐量的情况下,我会得到非常缓慢的未来$PromiseCompletingRunnable.run()次。你解决问题了吗?
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
}
}
}
}
}