Чрезмерное количество процессов httpd в моей рабочей настройке Rails + Apache2 + Passenger? - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть приложение Rails + Apache2 + Postgres + Passenger, работающее в производственном режиме в OSX Snow Leopard. Приложение служит хранилищем данных для другого облачного приложения, поэтому я постоянно получаю вызовы API для своей производственной сборки OSX.

После недавней перезагрузки я нахожу кучу процессов httpd, которые в конечном итоге требуют перезагрузки apache. Я не менял никаких настроек, раньше все было нормально. Любые идеи о том, как решить эту проблему?


$ ps -ef|grep httpd
    0  6203     1   0   0:00.20 ??         0:00.47 /usr/sbin/httpd -D FOREGROUND
   70  6222  6203   0   0:00.05 ??         0:00.11 /usr/sbin/httpd -D FOREGROUND
   70  6224  6203   0   0:00.31 ??         0:00.50 /usr/sbin/httpd -D FOREGROUND
   70  6233  6203   0   0:00.05 ??         0:00.10 /usr/sbin/httpd -D FOREGROUND
   70  6234  6203   0   0:00.43 ??         0:00.64 /usr/sbin/httpd -D FOREGROUND
   70  6243  6203   0   0:00.02 ??         0:00.03 /usr/sbin/httpd -D FOREGROUND
   70  6319  6203   0   0:00.08 ??         0:00.16 /usr/sbin/httpd -D FOREGROUND
   70  6334  6203   0   0:00.02 ??         0:00.05 /usr/sbin/httpd -D FOREGROUND
   70  6469  6203   0   0:00.04 ??         0:00.08 /usr/sbin/httpd -D FOREGROUND
   70  6487  6203   0   0:00.36 ??         0:00.48 /usr/sbin/httpd -D FOREGROUND
   70  6593  6203   0   0:00.36 ??         0:00.48 /usr/sbin/httpd -D FOREGROUND
   70  6709  6203   0   0:00.04 ??         0:00.08 /usr/sbin/httpd -D FOREGROUND
   70  6718  6203   0   0:00.04 ??         0:00.10 /usr/sbin/httpd -D FOREGROUND
   70  6834  6203   0   0:00.01 ??         0:00.03 /usr/sbin/httpd -D FOREGROUND
   70  6852  6203   0   0:00.00 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
   70  6853  6203   0   0:00.01 ??         0:00.02 /usr/sbin/httpd -D FOREGROUND

Ответы [ 2 ]

0 голосов
/ 05 апреля 2010

Хорошо, это то, что я мог понять из моей установки.Каждый раз, когда я запускаю приложение, запускаются 2 httpd процесса.В настоящее время у меня запущено 3 приложения и, следовательно, 6 процессов httpd.Это связано с пассажиром.Он тесно интегрирован с Apache.

Вот что я получаю:

 0    20     1   0   0:00.32 ??         0:01.48 /usr/sbin/httpd -D FOREGROUND
70   104    20   0   0:00.01 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
70   264    20   0   0:00.01 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
70   265    20   0   0:00.01 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
70   271    20   0   0:00.01 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
70   275    20   0   0:00.01 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
70   277    20   0   0:00.00 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
70   278    20   0   0:00.00 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND

Не думаю, что это проблема.По вашему списку процессов, если я прав, в облаке работает около 7 приложений.

Согласно документации Phusion Passenger:


PassengerMaxPoolSize

Максимальное количество экземпляров приложений Ruby on Rails или Rack, которые могут быть одновременно активными.Большее число приводит к более высокому использованию памяти, но улучшает способность обрабатывать параллельные HTTP-клиенты.

Оптимальное значение зависит от оборудования вашей системы и средней нагрузки на сервер.Вы должны экспериментировать с разными значениями.Но, вообще говоря, значение должно быть как минимум равно количеству процессоров (или ядер ЦП), которые у вас есть.Если ваша система имеет 2 ГБ ОЗУ, мы рекомендуем значение 30. Если ваша система является виртуальным частным сервером (VPS) и имеет около 256 МБ ОЗУ, а также использует другие службы, такие как MySQL, то мы рекомендуем значениеиз 2.

Если вы обнаружите, что ваш сервер не может справиться с нагрузкой на ваши веб-сайты Rails / Rack (т. е. не хватает памяти), то вам следует уменьшить это значение.(Хотя, если ваши сайты действительно так популярны, вам следует серьезно подумать об обновлении вашего оборудования или увеличении количества серверов.)

Этот параметр может появиться только один раз в глобальной конфигурации сервера.Значение по умолчанию - 6.


Вы упомянули это: «в конечном итоге требуется перезагрузка apache».Так какое-нибудь из ваших приложений rails зависает после определенного момента?

0 голосов
/ 05 апреля 2010

вы установили другой веб-сервер apache или он уже установлен?

...