使用 Phussion 的 Mac Lion 10.7.2 上的 Rails 应用程序运行缓慢

使用 Phussion 的 Mac Lion 10.7.2 上的 Rails 应用程序运行缓慢

我已经在 stackoverflow 上问过这个问题,但我认为这里有人可能也有见解。

我最近在运行 Lion 10.7.2 的 Mac mini 上部署了我的第一个 Rails 应用程序,该应用程序安装了 Apache 和 Phusion Passenger。这是一台四核机器,配有 2 GB 的 RAM。服务器起初似乎很好,只处理少量请求。然而,在请求开始增加后,它就锁定了。这是我第一次在服务器上部署 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>

非常感谢您的帮助!谢谢!

答案1

当系统开始缓慢运行的时候,是否已经对 Apache 和 Passenger 做过诊断?

请尝试类似以下工具

apachetop

或者

wtop 

wtop google 代码链接

它应该让你了解 apache 实时正在做什么!

Passenger 配备了很好的工具,可以显示许多有关 Rails 服务器的内存相关内容。

passenger-memory-stats

既然您提到您的应用程序是数据库密集型的,那么您是否检查过数据库是否是瓶颈!

密切关注整体内存和 CPU 使用情况以获得更好的想法。

相关内容