我遇到了一个Rails 3应用程序的问题。当许多请求被发送到服务器(10 /秒)时,整个服务器停止。我尝试了很多不同的乘客设置,有时我注意到了一些改进,但没有一个最终成为一个解决方案。
我的设置:
我目前的passenger.conf:
PassengerMaxPoolSize 12
PassengerUseGlobalQueue on 乘客高度表现 RailsSpawnMethod smart
PassengerMaxRequests 5000
PassengerStatThrottleRate 5
RailsAppSpawnerIdleTime 0
PassengerPoolIdleTime 600
此服务器专用于一个应用。好吧,一个应用程序处于分期和生产模式。
我尝试使用PassengerMaxPoolSize,将其设置为4,12,20,40,80 ......停滞不前。奇怪的是,Passenger似乎产生了比定义的MaxPoolSize更多的应用程序。目前它被设置为12但在htop我可以找到至少34个:
1234用户名20 0 260M 97572 3892 S 0.0 1.2 0:00.13机架:/var/www/domains/domain.com/current
我只需在应用的根页面打开30个标签即可轻松复制此问题。前10个左右立即加载,剩下的至少需要一分钟来呈现一些东西。
我没有想法。有人知道如何解决这个问题吗?
答案 0 :(得分:1)
Phusion Passenger可能正在尝试产生更多进程,但在产生时它无法响应请求。尝试实现异步产生的Phusion Passenger 3。
答案 1 :(得分:0)
检查您的rails日志以确保它没有提供任何静态请求(图像,css,js文件等)。如果是,则每个页面加载都会通过乘客触发更多请求。
如果是这种情况,您可以将apache配置为自己发送静态文件,而不是将所有请求转发给乘客。