此问题是我之前关于heroku缩放的question的后续问题。我注意到的是,当我使用我的应用程序时,它感觉不太顺利 - 我使用了像YSlow这样的插件,它始终告诉我大部分时间都花在服务器端来生成HTML。 New Relic似乎表明我的应用程序在请求队列中花费了大量时间,如下所示:
在这里:
但是我也有这些信息告诉我:
这似乎是服务器上10.7毫秒的处理时间与用户正在经历的1.3秒响应时间之间的真正,非常大的差异。这是什么意思?减少用户延迟的最佳方法是什么? (再次,我是一个完整的新手,非常感谢所有的帮助)
答案 0 :(得分:1)
您应更改为使用独角兽。这只适用于Cedar堆栈!它会给你更多的dyno基本上没有购买了。
在你的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编号进行实验)。每个dyno有一个内存限制。如果你有太多的工人并且达到了这个限制,那么dyno会慢下来爬行。
在此处参考此文章以获取更多详细信息:http://michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the-new-celadon-cedar-stack/