2012-06-28 2 views
1

Я вижу странное поведение при масштабировании Delayed :: Рабочие рабочие на Heroku.Heroku: Почему увеличение числа рабочих динамиков увеличивает время обработки работы?

У меня есть несколько тысяч рабочих мест, которые в основном идентичны. Когда я назначаю 1 рабочий dyno этой очереди, каждое задание завершается примерно за 4 секунды.

Когда я масштабировать число рабочих до 2, время обработки в среднем 8s на задание

Когда я масштабировать число рабочих до 10, среднее время обработки увеличивается за работу выше 30-х годов на работу.

Я бы не ожидал, что время обработки для каждой работы увеличится при масштабировании числа рабочих.

Как и в настоящее время, нет возможности увеличить количество рабочих, чтобы «оттолкнуть» отставание от рабочих мест, поскольку увеличение времени обработки компенсирует любые выгоды от увеличения числа рабочих.

Кто-нибудь еще видел это поведение и (что более важно) знает, как решить проблему?

ответ

1

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

+1

~ Да, это в конечном итоге стало проблемой. У меня был «неверный» составной индекс в таблице, который привел к сканированию таблицы для каждого запроса. Исправление составного индекса для фактической ссылки на столбцы, на которые я обращался, исправил проблему :) –