2014-10-27 17 views
4

我有4.1.6和2.1.3的Ruby运行Rails应用程序。有些时候他们需要这么长时间,但这并非一直发生。当我检查newrelic时,我仍然无法识别或追踪缓慢行。如何识别Rails应用程序缓慢线?

enter image description here enter image description here

+0

有类似的问题,你有没有发现这样做的原因是什么? – user1883793 2017-05-08 21:51:50

回答

1

退房perftools - 您可以使用谷歌perftools,或ruby specific implementation。有一个关于它here

一个很好的写了它贯穿于你的应用程序,并通过确定个体的方法调用所花费的时间找到瓶颈。你会得到的输出是这样的:

Total: 23 samples 
18 78.3% 78.3%  18 78.3% BigDecimal#div 
4 17.4% 95.7%  4 17.4% BigDecimal#* 
1 4.3% 100.0%  23 100.0% BigMath#PI 
0 0.0% 100.0%  23 100.0% BigMath.PI 

在这种情况下,你需要花一些时间BigDecimal

-1

div方法可能是一个缓慢的API调用。

这里是Doorkeeper::TokensController#create

的代码,我没有看到任何繁重的在这里完成。


阅读本New Relic的blog post有关添加custom metrics到您的代码。这将取代跟踪中的“应用程序代码”条目,并更详细地介绍代码中的内容。

我不能在这里复制链接的信息,由于版权。

+0

它不应该在TokensController#创建,因为它不发生的事情,它发生了一些时间。 – Samnang 2014-10-28 09:53:35

+0

@Samnang如果外部API通常很快,但有时*很慢(例如,在重负载下),这将是有意义的。 – Substantial 2014-10-28 15:52:43