2

这个问题是我之前关于在 heroku 中缩放的问题的后续问题。我注意到的是,当我使用我的应用程序时,感觉并不那么流畅——我使用过像 YSlow 这样的插件,它们始终告诉我大部分时间都花在了服务器端生成 HTML 上。New Relic 似乎表明我的应用程序在请求队列中花费了大量时间,如下所示:

NewRelicGraph1

和这里:

NewRelicGraph2

但是,我也有一些信息向我展示:

NewRelicGraph3

在服务器上 10.7 毫秒的处理时间与用户体验的 1.3 秒响应时间之间,这似乎是一个非常非常大的差异。这是什么意思?减少用户延迟的最佳方法是什么?(再次,我是一个完整的新手,非常感谢所有帮助)

4

1 回答 1

1

你应该改用 unicorn。这仅适用于 Cedar 堆栈!基本上无需再购买,它将为您提供更多的测功机。

关于如何的快速概要:

在您的 Gemfile 中:

gem 'unicorn'

创建 Rails.root/config/unicorn.rb

worker_processes 4 # amount of unicorn workers to spin up
timeout 30  # restarts workers that hang for 30 seconds

创建 Rails.root/Procfile

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

提交并将其推送到heroku,然后您需要对其进行调整(使用worker_process 编号进行实验)。每个测功机都有内存限制。如果您有太多工人并达到该限制,那么测功机将减速至爬行。


更多详细信息请参考本文:http: //michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the-new-celadon-cedar-stack/

于 2012-07-25T22:46:31.753 回答