我可以在Heroku上使用多少条Ruby Fibers?

时间:2013-03-06 01:20:57

标签: ruby-on-rails-3 heroku fibers

我正在尝试使用“async rails”,以帮助缓解使用慢速第三方服务的痛苦。

的Gemfile

gem 'eventmachine'
gem 'rack-fiber_pool',  :require => 'rack/fiber_pool'
gem 'em-synchrony', :require => ['em-synchrony',
                                 'em-synchrony/em-http',
                                 'em-synchrony/activerecord']

config.ru

require ::File.expand_path('../config/environment',  __FILE__)
use Rack::FiberPool, :size => 6
run MyApp::Application

有谁知道在Heroku的Cedar堆栈上可以使用多少Ruby Fibers?或者如何确定这样的事情?

1 个答案:

答案 0 :(得分:1)

和你一样,我正在尝试使用红宝石和纤维来提高应用性能。从我所阅读和想到的内容来看,你可以使用的纤维量几乎没有限制。

我想要记住(请自行检查),每个dyno可以使用高达500 Mb的RAM。每根光纤为你的应用程序的RAM使用量增加几kb(我认为2kb)。只要您的应用程序不使用完整的500Mb,即使使用1000根光纤也应该没问题。

但是之前你应该达到性能/并发边界,因为你的应用程序一次只能处理一个光纤。在您的情况下,它将取决于外部服务。