System requirements - wildberries-tech/universal-harvester GitHub Wiki
Утилизация ресурсов при работе Universal Harvester
Ресурсы аппаратной или виртуальной платформы определяют, какие сценарии вы можете выполнить, с каким диапазона параметров, и сколько таких сценариев может выполняться одновременно. Следует помнить, что при запуске сценария производится последовательный запуск экземпляра движка (engine.py) на каждый шаг. Выполнение шага в зависимости от параметров может вести к получению относительно больших данных, которые при работе движка хранятся в оперативной памяти (ОЗУ). Поскольку движок представляет собой отдельный экземпляр интерпретатора python, для эффективной работы большого количества движков требуется многоядерный процессор (ЦПУ) с высокой частотой.
Минимальные системные требования
Raspberry Pi 5/8 + 256Gb sdcard
Для работы с небольшими данными одному или нескольким пользователям этого будет достаточно. Исходя из практики применения Universal Harvester автором, ресурсов RPi 5 хватит для 50% из реально написанных сценариях в SOC.
Оптимальные системные требования
8+ ядер ЦПУ, 64Gb+ ОЗУ, 1Tb хранилище, 1G Network
Этих ресурсов хватит для 90% сценариев, кроме обработки больших данных или данных SOC за большие периоды времени. 10-20 пользователеё.
Приближенные к идеальным системные требования
64+ ядер ЦПУ, 640Gb ОЗУ, 8Tb хранилище, 10G Network
Данные ресурсы позволяют обрабатывать данные SOC за большие периоды времени (6 месяцев и более), в том числе и параллельно для нескольких субъектов. 50+ пользователей.
Как понять, сколько ресурсов требуется
При выборе ресурсов аппаратной или виртуальной платформы следуйте следующим правилам:
- Ресурсов desktop-like компьютера хватит для решения 90% задач 1-2 пользователям;
- Чем больше пользователей, тем больше параллельных запросов, тем больше ядер ЦПУ вам нужно;
- Сложные сценарии из 20+ шагов также повышают требования по ЦПУ;
- Если у вас есть потребность обрабатывать большие данные (1кк строк и больше), то вам нужно много ОЗУ, параллельная обработка таких данных кратно увеличивает потребность;
- Сетевое соединение может стать узким местом при получении данных;
- Инструмент сохраняет в хранилище результат выполнения каждого шага, убедитесь, что его размер достаточен.