Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails RefineryCMS的Heroku上的高响应队列时间_Ruby On Rails_Heroku_Refinerycms_Newrelic - Fatal编程技术网

Ruby on rails 使用Rails RefineryCMS的Heroku上的高响应队列时间

Ruby on rails 使用Rails RefineryCMS的Heroku上的高响应队列时间,ruby-on-rails,heroku,refinerycms,newrelic,Ruby On Rails,Heroku,Refinerycms,Newrelic,我正在Heroku上运行一个精炼CMS应用程序。它在两个网络dyno上,但对于目前每分钟13个请求的可忽略流量,实际dyno负载低于10%(如果我正确阅读NewRelic的话) 然而,我的应用服务器平均响应时间为800毫秒,几乎所有的时间都花在请求排队上。其他每一个请求都会出现3000ms(或更多)的请求队列峰值,而另一些请求会在不到200-300ms的时间内加载,这要归功于积极的memcaching 如何找出问题的根本原因 编辑:在对日志进行进一步调查后,我不得不问自己一个问题:这是预期的在A

我正在Heroku上运行一个精炼CMS应用程序。它在两个网络dyno上,但对于目前每分钟13个请求的可忽略流量,实际dyno负载低于10%(如果我正确阅读NewRelic的话)

然而,我的应用服务器平均响应时间为800毫秒,几乎所有的时间都花在请求排队上。其他每一个请求都会出现3000ms(或更多)的请求队列峰值,而另一些请求会在不到200-300ms的时间内加载,这要归功于积极的memcaching

如何找出问题的根本原因

编辑:在对日志进行进一步调查后,我不得不问自己一个问题:这是预期的在Amazon S3上托管资产的RefineryCMS吗

heroku[router]: method=GET path=/system/images/W1siZiIsIjIwMTMvMDQvMTQvMTUvMTAvMDkvNzY4L0pFQU5fQ0xBVURFX1BFTk5FVElFUi5qcGciXSxbInAiLCJ0aHVtYiIsIjI1MHgiXV0/JEAN-CLAUDE%20PENNETIER.jpg service=1061ms status=200 bytes=11232
heroku[router]: method=GET path=/system/images/W1siZiIsIjIwMTMvMDQvMTQvMTUvMTEvMzkvMjI3L01BUklTU19KQU5TT05TLmpwZyJdLFsicCIsInRodW1iIiwiMjUweCJdXQ/MARISS%20JANSONS.jpg service=1161ms status=200 bytes=14358
heroku[router]: method=GET path=/system/images/W1siZiIsIjIwMTMvMDQvMTQvMTUvMjEvNDAvOC9TaXJfTkVWSUxMRV9NQVJSSU5FUi5qcGciXSxbInAiLCJ0aHVtYiIsIjI1MHgiXV0/Sir%20NEVILLE%20MARRINER.jpg service=5412ms status=200 bytes=23191

这些文件是否在本地托管,从而减少请求?

您是否尝试过切换到使用unicorn web服务器

它允许您同时处理来自一个dyno的多个请求


.

这听起来像是运行缓慢的请求。查看您的日志以了解更多信息,但我怀疑您将看到大量H12错误

如果您还没有准备好,我会考虑使用Unicorn和Rack::Timeout。通常,快速请求会因其他长时间运行的请求引起的队列而变慢。通过使用Rack::Timeout,您可以消除任何长时间(比如15秒)运行的请求,而使用Unicorn将允许您一次处理多个请求


当然,这是假设你在雪松上跑步。如果您没有,我会尽快升级。

我正在运行Cedar,我正在为Unicorn提供两个实例。Rack::Timeout也设置为奇数29秒,因为我知道它比Unicorn 30秒超时好。无论如何,我都要查看一下日志,看看是否能找到一些有启发性的东西,但据我所知,这些是Rails服务器日志,这似乎是一个dyno级别的问题。