Как увеличить количество потоков для Rails с помощью Passenger?

У меня есть приложение Ruby on Rails, которое получает чрезвычайно большое количество запросов в очень определенное время, и иногда очередь запросов Passenger превышает 100, а пользователи получают 503.

Как установить большее количество потоков?

Я использую Passenger и Nginx, выполняю развертывание с помощью Capistrano, используя гем capistrano-passenger.


person Jason Galuten    schedule 26.06.2018    source источник


Ответы (1)


Эта статья на Phusion Passenger, кажется, прямо отвечает на ваш вопрос и дает некоторые руководство по сопутствующим вопросам.

Шаг 3. Настройте Passenger

Исключительно однопоточные многопроцессорные сценарии

Настроить:

passenger_max_pool_size <desired_app_processes>;
passenger_min_instances <desired_app_processes>;
passenger_pre_start to have your app started automatically at web server boot.

Многопоточные сценарии

Чтобы использовать многопоточность, вы должны использовать Passenger Enterprise. Версия Passenger с открытым исходным кодом не поддерживает многопоточность.

Настроить:

passenger_max_pool_size <CHOSEN_NUMBER_OF_PROCESSES>;
passenger_min_instances <CHOSEN_NUMBER_OF_PROCESSES>;
passenger_concurrency_model thread;
passenger_thread_count <desired_app_threads_per_process>;
passenger_pre_start to have your app started automatically at web server boot.
If desired_app_processes is 1, then you should set passenger_spawn_method direct. By using direct spawning instead of

smart spawning, Passenger не будет поддерживать процесс Preloader, что сэкономит вам немного памяти (узнайте больше о методах Spawn). Это связано с тем, что процесс Preloader бесполезен, когда есть только один процесс приложения.

person possiblyLethal    schedule 26.06.2018
comment
Это определенно привело меня в правильном направлении, спасибо! - person Jason Galuten; 29.06.2018