Приложение Rails медленно умирает на Mac Lion 10.7.2 с Phussion - PullRequest
0 голосов
/ 01 февраля 2012

Я недавно развернул свое первое приложение Rails на Mac mini, работающем под управлением Lion 10.7.2 с Apache и Phusion Passenger.Это четырехъядерный процессор с 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>

Любая помощь очень ценится!Спасибо!

1 Ответ

1 голос
/ 21 февраля 2012

Оказывается, в моем приложении rails использовались камни Ruby Mongo 1.4.1 и BSON 1.4.1, которые были выдернуты из-за утечек памяти. Поэтому простое обновление из драгоценных камней решило проблему. Кроме того, использование логов Apache и статистика пассажира помогли найти проблему.

...