У меня есть приложение rails, которому требуется некоторое время для обработки определенных запросов (поскольку оно обрабатывает загрузку изображений). В настоящее время у меня есть три смешанных процесса в кластере, и я ожидаю, что один из двух других будет обрабатывать второй запрос, если первый занят.
Однако, похоже, этого не происходит. Если я просматриваю вывод top
на сервере, я могу сказать, когда он изменяет размер изображения, поэтому, если я попытаюсь поразить приложение простым запросом (который обычно завершается быстро), кажется, что он ждет, пока долго работающий запрос завершен.
Когда я просматриваю файлы log/mongrel.xxxx.log, все, что я вижу, это результат запуска приложения.
Как я могу проверить, какой процесс фактически обрабатывает каждый запрос?
Могу ли я заставить этих ублюдков регистрировать каждый запрос (даже если это просто отметка времени и что-то вроде «GET /path/to/resource»)?
Любые идеи, почему кластер может не распределять нагрузку в первую очередь?
Внешний веб-сервер - nginx, так что, может быть, мне следует искать именно его? Похоже, что в nginx access_log нет ничего о том, куда был проксирован запрос.