/ / Скільки волокон Ruby я можу використовувати на Heroku? - рубін-на-рейках-3, героку, волокна

Скільки Ruby Fibers можна використовувати на Heroku? - рубінові рейки-3, героку, волокна

Я експериментую з "асинхронними рейками", щоб полегшити біль від використання повільних сторонніх служб.

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 волокон.

Але вам слід досягти межі продуктивності / паралелізму раніше, оскільки ваш додаток все одно обробляє лише одне волокно одночасно. У вашому випадку це буде залежати від зовнішньої служби.