API будет вызываться очень редко, и на данный момент одновременных запросов никогда не будет. Я хочу, чтобы выполнение выполнялось как можно быстрее.
Я настроил службу с максимальными доступными настройками ЦП и памяти (8 виртуальных ЦП, 32 ГБ памяти), но общее время выполнения API не улучшилось по сравнению с меньшими конфигурациями. Судя по показателям Cloud Monitoring, загрузка ЦП и использование памяти остаются стабильно низкими (около 10–20%), даже несмотря на то, что процесс должен быть ресурсоемким. Это заставляет меня подозревать, что контейнер не использует полную загрузку ЦП или может иметь место регулирование или конфигурация, ограничивающая производительность.
Или я что-то полностью упускаю?
Ожидаемое поведение:
- При более крупной конфигурации ЦП и памяти процесс API должен выполняться быстрее и пропорционально использовать больше ресурсов ЦП (в идеале 80–90% загрузки ЦП во время тяжелых вычислений).
- Платформа: Cloud Run (полностью управляемая) – Параллельность: 1 (для изоляции вычислений для каждого запроса)
- Распределение ЦП: 8 виртуальных ЦП – Выделение памяти: 32 ГБ
- Тайм-аут выполнения: 60 минут
- Продолжительность запроса: ~30–45 минут
- Загрузка ЦП: 10–20 % Вопросы:
- Ограничивает ли Cloud Run загрузку ЦП во время обработки запросов, даже если настроено максимальное количество виртуальных ЦП?
- Существует ли лучшая настройка, обеспечивающая полную загрузку ЦП при тяжелых вычислительных нагрузках?
- Существуют ли рекомендуемые конфигурации или шаблоны для рабочих нагрузок, связанных с ЦП, которые требуют выполнения больших вычислений в течение 60 минут?
/>
- Код выполняет многопоточные или параллельные вычисления на Python.
- Узких мест ввода-вывода не обнаружено.
- Протестировано на различных конфигурациях компьютеров — производительность практически не изменилась.
Подробнее здесь: https://stackoverflow.com/questions/798 ... thon-scrip
Мобильная версия