我正在从事一个自动化项目,需要不定期的高计算能力。
我最初的想法是以经济有效的方式解决这个问题,即创建几个google cloud compute
实例,并在需要执行计算时启动它们,然后在完成计算时停止它们。
我的问题是,booting
一个实例takes almost a minute
,然后another minute
到start
我的过程。Calculation
通常只需要60s
。
我浪费了总计算时间的 2/3 来启动实例和启动进程。然后关闭实例也需要 1 分钟。这段时间也需要付费。在这种情况下,只有 1/4 的成本用于计算。
有人遇到过类似的问题吗?您采取了什么方法消除这种时间(和金钱)浪费?如果我可以让一个实例“休眠”(并且不收取休眠时间的费用),然后以最小的延迟恢复它,那就太好了。
答案1
如果你可以从你的应用程序中创建 Docker 容器,并且你不受 GCP 的约束,可以使用 AWS,那么你可以在AWS Fargate- 它是一个用于运行 Docker 容器的无服务器平台。
和AWS Fargate您只需为容器运行的时间付费(从存储库下载容器的开销很小,但只有一两秒钟),并且无需启动/关闭任何底层基础设施。价钱是每秒,最低 1 分钟,每分钟的价格取决于您选择的中央处理器和内存配置。
或者你可以运行你的二进制文件AWS Lambda- 它不仅支持运行源代码,还支持运行任何 Linux 可执行文件。请参阅在 AWS Lambda 中运行任意可执行文件。
更新:正如您在评论中提到的,您的工作负载在 Windows 上运行,需要大量 CPU - 在这种情况下,您可能仍需要在标准 AWS EC2 Windows 实例上运行它。看看AWS Spot 定价以节省高达 90% 的运行成本。
GCP 可能有一些类似的服务,不确定。
希望有帮助:)