Назад | Перейти на главную страницу

исключить время загрузки облачного экземпляра

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

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

Моя проблема в том, что booting экземпляр takes almost a minute, а потом another minute к start мой процесс. Calculation часто занимает просто 60s.

Я трачу 2/3 общего времени вычислений на загрузку экземпляра и запуск процесса. Кроме того, для завершения работы экземпляра требуется 1 мин. Это время тоже нужно заплатить. В этом сценарии только 1/4 затрат используется на вычисления.

У кого-нибудь была подобная проблема? Какой подход вы использовали для устранения этой траты времени (и денег)? Было бы здорово, если бы я мог перевести экземпляр в «спящий» режим (и не взимать плату за время сна), а затем возобновить его с минимальной задержкой.

Если вы можете создать контейнер Docker из своего приложения, и если вы не привязаны к GCP и вместо этого можете использовать AWS, вы можете запустить свой контейнер на AWS Fargate - это бессерверная платформа для запуска контейнеров Docker.

С участием AWS Fargate вы платите только за время работы вашего контейнера (с небольшими накладными расходами на его загрузку из репозитория, но это всего лишь секунда или две), и вам не нужно запускать / выключать какую-либо базовую инфраструктуру. Ценообразование в секунду с минимумом в 1 минуту, а цена за минуту зависит от выбранного вами ЦПУ и ОЗУ конфигурация.

В качестве альтернативы вы можете запустить свой двоичный файл в AWS Lambda - он поддерживает не только запущенный исходный код, но и любой исполняемый файл Linux. Видеть Запуск произвольных исполняемых файлов в AWS Lambda.

Обновить: Как вы упомянули в комментариях, ваша рабочая нагрузка выполняется в Windows и требует много процессоров - в этом случае вам все равно может потребоваться запустить ее на стандартном экземпляре AWS EC2 Windows. Посмотри на Спотовые цены на AWS для возможности сэкономить до 90% затрат на время выполнения.

У GCP могут быть похожие сервисы, не уверен.

Надеюсь, это поможет :)

В качестве альтернативы вы можете использовать стоп / старт подход к вашему экземпляру. Это сократит время загрузки. Более того, с вас не взимается плата при остановке ваших инстансов, однако имейте в виду, что за другие ресурсы, прикрепленные к вашим инстансам, будет выставлен счет. Например, постоянные диски и внешние IP-адреса.

Теперь что касается ответа @MLu для контейнера Docker, GKE поддерживает только ОС с контейнерной оптимизацией (cos) и Ubuntu, поэтому ОС Windows не поддерживается в GKE. Исходя из этого, вам, возможно, придется взглянуть на Azure, если вы хотите пойти по маршруту контейнера.

Облачные функции Google - это самый простой способ запустить ваш код в облаке, но вам нужно владеть кодом.