Как я могу быть уверен, что каждый процесс в моем mongrel_cluster обрабатывает запросы? - PullRequest
0 голосов
/ 01 сентября 2009

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

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

Когда я просматриваю файлы log / mongrel.xxxx.log, я вижу только вывод запуска приложения.

Как я могу проверить, какой процесс фактически обрабатывает каждый запрос?

Могу ли я заставить их ублюдков регистрировать каждый запрос (даже если это просто временная метка и что-то вроде 'GET / path / to / resource')?

Есть идеи, почему кластер может не распределять нагрузку?

Интерфейсным веб-сервером является nginx, так что, возможно, именно здесь я должен искать? Кажется, в nginx access_log нет ничего о том, куда был передан запрос.

1 Ответ

1 голос
/ 01 сентября 2009

Мы столкнулись с похожими проблемами на reevoo.com некоторое время назад. Посмотрите на результирующее сообщение в блоге .

Особый интерес представляет использование mongrel_proctitle для диагностики проблемы. Это позволит ps aux увидеть, что обрабатывает конкретный дворняга.

...