2

У меня есть требование обрабатывать ~ 20k вызовов в секунду. Моя система обрабатывает списки ~ 1M записей и выполняет несколько заданий для каждого элемента. Это очень «всплеск» по своей природе, поскольку он не всегда обрабатывает список. Я добавил приложение Flex flex env (с Rails), используя автоматическое масштабирование, с конечной точкой тестирования, чтобы подождать 5 секунд и вернуться. Я нажимаю на тему pubsub, и push-подписка отправляется в App Engine. Запуск этого процесса достигает устойчивого 20-30 запросов в секунду.Производительность * путь * слишком медленный с pubsub push -> движок приложения

Я догадался, что проблема заключалась в взаимодействии алгоритма громкости pubsub push, взаимодействующего с движком App Engine, но затем я провел второй тест, где я просто взорвал запросы на завивки, как в цикле с несколькими процессами. Это также достигало 20-30 т/с.

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

Большое спасибо за помощь!

+0

Так что сообщения, создаваемые в Паб/Суб? Можете ли вы опубликовать свойства масштабирования из вашего 'app.yaml'? Согласно [docs] (https://cloud.google.com/pubsub/subscriber): _Cloud Pub/Sub запускается путем отправки одного сообщения за раз и удваивает каждую успешную доставку, пока не достигнет максимального числа несоответствующих сообщений. Происходят ли ваши запросы, пока App Engine поддерживает новый экземпляр (помните, что это [slow on Flexible envs] (https://cloud.google.com/appengine/docs/the-appengine-environments)). – tx802

+0

Кроме того, вы пробовали тестовую конечную точку, которая (а) не выполняет 5 секунд для запуска и (b) находится в чем-то вроде стандартной среды python (быстро масштабируется)? – tx802

ответ

4

Мой опыт работы с pub/sub - это очень медленный процесс обработки одиночных сообщений. Я бы предположил, что накладные расходы на то, чтобы быть http. И среднее время, которое я вижу, составляет около 40 мс за пределами Google и 20 мс, если вы используете свой код на серверах Google. Что для меня работало, так это для пакетных сообщений, я смог получить до 100 тыс. Msgs/sec при доведении их до 1 тыс. Сообщений на публикацию.