Thin едновременно ли е, ако се използва с Rails / ActiveRecord?

нашето приложение Rails 4 работи в thin -s 16 ... мултипроцесен сървър с Apache като интерфейс и неговия обратен прокси, обработващ вътрешните заявки. Всичко работи добре и производителността е наред за нашия брой потребители.

Тъй като всичко работи веднага, не се притеснявах как всъщност работи Thin. Наскоро обаче се натъкнах на всички добрини на Fibers и EventMachine и прочетох много за тях.

Thin използва EventMachine за обработка на Rack заявки. Така че по дизайн той ще може да обработва множество заявки паралелно с един ruby ​​процес. За съжаление, докато тънката документация е достатъчно функционална, за да можете да стартирате сървъра за няколко минути работа, тя е доста тиха за вътрешната работа.

Правилно ли приемам, че всички приказки за „конкурентност“ са спорни, щом стартирам Thin with Rails? ActiveRecord, DB драйверите, обработката на шаблони и т.н. вероятно не са активирани за EM, не използват Fibers и т.н., следователно така или иначе ще блокират единичния процес, като в същото време използват по-голямата част от времето за обработка от страна на сървъра в DB-heavy приложения.

Всичките ми изследвания изглежда водят до това заключение; за съжаление уебсайтът/документите на Thin не казват нищо за това. Честно казано, объркан съм как думата "едновременен" изобщо влиза в картината тук...

Може ли някой да ми изясни това? Пропускам ли някаква фундаментална информация, или "едновременността" е рекламирана на http://code.macournoyer.com/thin/ означава по отношение на ръчно създадени Rack сървъри, които не използват Rails или друг "тежък" междинен софтуер?

Благодаря!


person AnoE    schedule 05.11.2015    source източник


Отговори (1)


Прав си, когато използваш с Rails, няма да е едновременно. Всяко извикване на db драйвер/файлова система ще блокира целия рубинен интерпретатор. Може да е частично променено в Rails 5, но засега просто трябва да стартирате много работни процеси.

person Dmitry Sokurenko    schedule 05.11.2015
comment
Благодаря, че потвърди подозрението ми. - person AnoE; 05.11.2015