我最近在使用Apache和Phusion Passenger运行Lion 10.7.2的Mac mini上部署了我的第一个Rails应用程序。它是一台四核机器,上面有2个推杆。服务器一开始似乎很好,只处理少量请求。但是,在请求开始增加之后,它会锁定。这是我对ROR的第一次服务器部署,我不会放弃我应该检查的内容。我查看了运行的ruby进程,它大约有5或6个。
该应用程序非常适合数据库和AJAX。
我已经阅读了有关优化Phusion Passenger的其他帖子,但它似乎没有帮助。我的httpd.conf文件如下所示:
<VirtualHost *:80>
ServerName http://domain.com/
DocumentRoot /Users/lab/WebApplications/next_browse_app/public
PassengerSpawnMethod conservative
# Speeds up spawn time tremendously -- if your app is compatible.
# RMagick seems to be incompatible with smart spawning
RailsSpawnMethod smart
# Keep the application instances alive longer. Default is 300 (seconds)
PassengerPoolIdleTime 1000
# Keep the spawners alive, which speeds up spawning a new Application
# listener after a period of inactivity at the expense of memory.
RailsAppSpawnerIdleTime 0
# Just in case you're leaking memory, restart a listener
# after processing 5000 requests
PassengerMaxRequests 5000
PassengerMaxPoolSize 4
PassengerMaxInstancesPerApp 4
<Directory /Users/lab/WebApplications/next_browse_app/public>
AllowOverride all
Allow from all
Options -MultiViews
</Directory>
非常感谢任何帮助!谢谢!
答案 0 :(得分:1)
事实证明我的rails应用程序使用的是Ruby gems Mongo 1.4.1和BSON 1.4.1,由于内存泄漏而被淘汰。因此,从宝石的简单升级解决了这个问题。此外,使用尾随Apache的日志并使用乘客记忆统计数据帮助找到问题。