2013-03-06 21 views
0

我正在嘗試使用「異步導軌」,以幫助緩解使用慢速第三方服務的痛苦。我可以在Heroku上使用多少個Ruby Fibers?

的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的雪松被用來堆棧?或者如何去決定這樣的事情?

回答

1

像你一樣,我正在嘗試使用紅寶石和光纖來提高應用性能。從我所閱讀和想到的記住,應該幾乎沒有限制你可以使用的纖維數量。

我想要記住(請檢查一下自己),確定每個測功機最多可以使用500 Mb的RAM。每個光纖都會爲您的應用的RAM使用量增加幾kb(我認爲是2kb)。只要您的應用程序不使用完整的500Mb,即使使用1000根光纖,也應該沒問題。

但是,您應該在性能/併發性邊界之前,因爲您的應用程序仍然一次只處理一根光纖。在你的情況下,它將取決於外部服務。

+0

我確定這個數字實際上並不是無限的,但這是一個偉大的觀點,我可能很快就會在內存不足之前就看不到額外光纖的好處。謝謝! – colllin 2013-04-11 05:38:33

相關問題