Пассажир порождает много приложений в стойке - PullRequest
3 голосов
/ 09 марта 2012

вывод passenger-memory-stats

----- Passenger processes -----
PID    VMSize    Private  Name
-------------------------------
28572  207.4 MB  ?        Rack: /home/myapp/application
28580  207.0 MB  ?        Rack: /home/myapp/application
28588  206.0 MB  ?        Rack: /home/myapp/application
28648  206.5 MB  ?        Rack: /home/myapp/application
29005  23.0 MB   ?        PassengerWatchdog
29008  100.5 MB  ?        PassengerHelperAgent
29010  43.1 MB   ?        Passenger spawn server
29013  70.8 MB   ?        PassengerLoggingAgent
29053  202.0 MB  ?        Passenger ApplicationSpawner: /home/myapp/application
29105  202.3 MB  ?        Rack: /home/myapp/application
29114  202.3 MB  ?        Rack: /home/myapp/application
29121  202.3 MB  ?        Rack: /home/myapp/application
29130  202.3 MB  ?        Rack: /home/myapp/application
29138  202.3 MB  ?        Rack: /home/myapp/application

Это похоже на множество порожденных процессов ... Это приложение в настоящее время в разработке, и никто (о котором я знаю) не ударил его ...

вывод passenger-status

  App root: /home/myapp/application
  * PID: 29105   Sessions: 1    Processed: 0       Uptime: 15m 11s
  * PID: 29114   Sessions: 1    Processed: 0       Uptime: 14m 0s
  * PID: 29121   Sessions: 1    Processed: 0       Uptime: 14m 0s
  * PID: 29130   Sessions: 1    Processed: 0       Uptime: 14m 0s
  * PID: 29138   Sessions: 1    Processed: 0       Uptime: 14m 0s

Во-первых, это нормально?

Во-вторых, возможные причины?

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Для тех, у кого есть проблема с зависанием Rails ... Если вы работаете на VPS с ограниченной памятью, проверьте и убедитесь, что вы настроили max_pool, чтобы не создавать слишком много экземпляров приложения для вашей системы,По умолчанию установлено значение 6, что, по-видимому, слишком много для VPS с ограниченным объемом памяти.

Документы о настройке максимального пула: http://www.modrails.com/documentation/Users%20guide%20Nginx.html#PassengerMaxPoolSize

0 голосов
/ 02 июня 2012

Может случиться так, что какой-то процесс выживет из более ранних версий вашего приложения. Стойка нашего приложения обрабатывает каждую точку для определенного выпуска нашего приложения.

95171 2491,8 МБ, 4,8 МБ, стойка: / Deploy / theapp / Releases / 20120530013237

И было несколько процессов, указывающих на множество разных выпусков. Что приводит меня к выводу, что они остаются после перезапуска приложения.

Я подумал, что касание tmp / restart.txt вместо перезапуска apache дает такой эффект. Поэтому я установил: use_sudo в true и перезапускаю с помощью 'run "# {try_sudo} / opt / local / apache2 / bin / apachectl graceful"', и единственные процессы Rack, которые я вижу, это те, которые только что были запущены.

...