2009-09-01 4 views
0

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

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

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

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

Могу ли я получить их mogrels для регистрации каждого запроса (даже если это всего лишь метка времени и что-то вроде «GET/path/to/resource»)?

Любые идеи, почему кластер не может делиться нагрузкой в ​​первую очередь?

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

ответ

1

Мы столкнулись с аналогичными проблемами на reevoo.com некоторое время назад. Посмотрите на resultant blog post.

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

+0

Спасибо, что дало мне необходимую мне информацию. (К сожалению, это была не информация, которую я хотел, но это еще одна история :) – pkaeding

 Смежные вопросы

  • Нет связанных вопросов^_^