Я експериментую з "асинхронними рейками", щоб полегшити біль від використання повільних сторонніх служб.
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
Хтось знає, скільки рубінових волокон можна використовувати на стеці Кедра Героку? Або як піти на визначення такого?
Відповіді:
1 для відповіді № 1Як і ви, зараз я експериментую з рубіномі волокна для підвищення продуктивності додатків. І з того, що я прочитав і думаю пам’ятати, майже не повинно бути обмежень щодо кількості волокон, які ви можете використовувати.
Я думаю пам’ятати (будь ласка, перевірте це самі),що кожен dyno може використовувати до 500 Мб оперативної пам'яті. Кожне волокно додає кілька кб (я думаю 2 кб) до використання оперативної пам'яті вашого додатка. Поки ваш додаток не використовує повних 500 Мб, ви повинні бути добре навіть з 1000 волокон.
Але вам слід досягти межі продуктивності / паралелізму раніше, оскільки ваш додаток все одно обробляє лише одне волокно одночасно. У вашому випадку це буде залежати від зовнішньої служби.