我有一个Ruby on Rails应用程序,该应用程序在非常特定的时间收到大量请求,有时乘客的请求队列超过100,用户得到503。
如何设置更多线程?
我正在使用Passenger和Nginx,并使用capistrano-passenger gem与Capistrano一起部署。
答案 0 :(得分:1)
This article在Phusion Passenger中似乎可以直接回答您的问题,并为相关问题提供一些指导。
第3步:配置乘客
纯单线程多进程方案
配置:
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
智能产卵,乘客不会保持预载程序的状态, 为您节省一些内存(在Spawn方法中了解更多信息)。这是因为 只有一个应用程序时,Preloader进程是无用的 过程。