2015-04-16 59 views
1

有人可以幫助我閱讀NewRelic摘要和跟蹤詳細信息。以下屏幕截圖具有跟蹤單個事務的功能,該功能不會對數據庫創建任何查詢。它只是一個簡單的查詢,只有幾行Scala模板代碼,它呈現HTML頁面並將其返回給客戶端。這只是當前正在生產中運行的單個事務。生產有很多更復雜的交易運行,它會對Mongo,Maria,Queue等進行大量外部呼叫。NewRelic的緩慢交易Play框架作爲後端

跟蹤是否顯示瓶頸可能出現的位置?例如,我們是否耗盡了線程或工作人員。正如我所說的,大部分交易都會進行大量的網絡外部呼叫,這可能會在很長一段時間內保留單線程。如果線程或工作人員在Play應用程序中耗盡,如何才能真正學習?我們正在使用2.1.4。

在以下調用中實際發生了什麼?

Promise.apply 21.406ms

異步等待21.406ms

Actor.tell 48.366ms

PlayDefaultUpstreamHandler 6.292ms

NewRelic Trace details

NewRelic Summary

編輯:

以下調用的目的是什麼?那些平均通話時間超高。

scala.concurrent.impl.CallbackRunnable.run() 
scala.concurrent.impl.Future$PromiseCompletingRunnable.run() 
org.jboss.netty.handler.codec.http.HttpRequestDecoder.unfoldAndFireMessageReceived() 

enter image description here

編輯:

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 
     } 
     } 
    } 
    } 
} 
+0

請問您是否使用akka /線程池配置更新線程? –

+0

我有類似的行爲。某些時候,我會得到很好的 未來$ PromiseCompletingRunnable.run()次,有時甚至是低的吞吐量,我會變得極其緩慢 Future $ PromiseCompletingRunnable.run()次。你解決了這個問題嗎? – rsan

回答

0

我不知道這是否會幫助你1年後,但我認爲你是打打球,阿卡是不相關的性能問題或Netty。

問題將出現在您的代碼業務邏輯或數據庫訪問中。你看到PromiseCompletingRunnable和unfoldAndFireMessageReceived的大時代是誤導性的。這個時代是以錯誤和誤導的方式報道的。請閱讀這篇文章:

Extremely slow play framework 2.3 request handling code

我遇到了類似的問題,而我的是在數據庫中,但報道NewRelic的在網狀的大時代。

我希望這可以幫助你,甚至現在。