Есть ли какая-либо форма для уменьшения количества сообщений, прочитанных в секунду из PubSubIO?

У меня есть конвейер потоковой передачи в облаке, который считывается из PubSubIO и для которого «PipelineOptions» установлено значение «WorkerMachineType = n1-standard-1». Эта машина имеет 3,75 ГБ памяти.

Моя проблема в том, что если в подписке много сообщений, конвейер читает очень быстро, и когда начинает обрабатывать много элементов, ему не хватает памяти.

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

Спасибо заранее.


person bsmarcosj    schedule 17.06.2015    source источник
comment
Не могли бы вы ответить на несколько уточняющих вопросов? 1. Наблюдаете ли вы сбои или чрезмерное использование памяти? 2. Можете ли вы также предоставить более подробную информацию о том, что вы делаете в этом конвейере (тип работы с окнами, триггеры, режим сброса/накопления активированных панелей, общая пропускная способность в записях/сек и байтах/сек)? 3. Сколько рабочих вы выделили?   -  person Tyler Akidau    schedule 17.06.2015
comment
Привет, Тайлер, ниже вы можете найти ответы на свои вопросы: 1- Конвейер не дает сбоев, через 10 минут после того, как я выполнил конвейер, я вижу высокий уровень использования памяти, и кажется, что конвейер был приостановлен, поэтому после окна продолжительность время ничего не пишет. 2- В этом конвейере я применяю 30-минутное окно (без триггеров), а затем делаю GroupByKey. Конвейер читает сообщения из PubSubIO со скоростью 46-65 сообщений в секунду и обрабатывает элементы со скоростью 60000-100000 элементов в секунду. 3- У меня есть только один рабочий.   -  person bsmarcosj    schedule 18.06.2015


Ответы (1)


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

Вы также повысите производительность с машинами n1-standard-4, т.е. почему мы делаем их по умолчанию для потоковой передачи.

person Tyler Akidau    schedule 22.06.2015