RAM-диски в GCP Dataflow — возможно ли это?

Google Compute Engine поддерживает RAM-диски — см . здесь .
Я разрабатываю проект, который будет повторно использовать существующий код, управляющий локальными файлами.
Для масштабируемости я собираюсь использовать Dataflow.
Файлы находятся в GCS, и я отправлю их работникам Dataflow для обработки.
Я думал о повышении производительности, используя RAM-диски на рабочих местах, копировать файлы из GCS прямо на RAM-диск и манипулировать ими там.
Я не могу найти ни одного примера такой возможности.

Является ли это допустимым решением, или мне следует избегать такого «трюка»?

2 ответа

Невозможно использовать виртуальный диск в качестве типа диска для рабочих процессов, поскольку виртуальный диск настраивается на уровне ОС. Единственными доступными дисками для рабочих процессов являются постоянные диски Standard (pd-standard) и постоянные диски SSD (pd-ssd). Среди них SSD определенно быстрее. Вы можете попробовать добавить больше рабочих процессов или использовать более быстрый процессор для более быстрой обработки данных.

Для сравнения я попробовал запустить задание, использующее стандартный и ssd, и оказалось, что оно на 13% быстрее при использовании SSD по сравнению со стандартным диском. Но обратите внимание, что я только что протестировал быстрый старт из документации по потоку данных .

Использование SSD (прошло 3 м 54 с):

Использование стандартного диска (прошедшее время 4 м 29 с):

Хотя то, что вы хотите сделать, может быть технически возможно, создав setup.pyс пользовательскими командами это не поможет вам повысить производительность. Beam уже использует столько рабочей оперативной памяти, сколько может, чтобы работать эффективно. Если вы читаете файл из GCS и работаете с ним, то этот файл уже будет загружен в оперативную память. Выделив большую часть оперативной памяти на виртуальный диск, вы, вероятно, заставите Beam работать медленнее, а не быстрее.

Если вы просто хотите, чтобы что-то происходило быстрее, попробуйте использовать SSD, увеличьте количество рабочих процессов или попробуйте использовать c2семейство машин.

Другие вопросы по тегам