【问题标题】:How to estimate Google Cloud Run costs? [closed]如何估算 Google Cloud Run 费用? [关闭]
【发布时间】:2020-12-18 16:06:15
【问题描述】:

我已经构建了我的机器学习模型,下一步我希望将其公开。计划是:

  • 使用 Streamlit 构建 UI。
  • 使用 Docker 映像打包应用程序。
  • 将 Docker 映像部署到 Google Cloud Run 环境中。
  • 在 Google Cloud Run 环境中启动 Docker 容器。

但问题是我无法估计在 Google Cloud Run 中启动和运行容器的成本(我还是个初学者)。如何估计最坏的情况,即它应该产生的最大成本是多少? Google Cloud Run pricing table 中有 CPU、内存、请求和网络属性,但是:

  • 我如何才能确切知道我的应用程序将占用多少这些资源?
  • 如果应用程序是公开可用的并且请求超过免费限制配额,会不会发生天文数字的账单。
  • 我可以设置一些我的账单不能超过的限制吗?

【问题讨论】:

  • 这似乎不是一个编程问题,也不适合 Stack Overflow。我不确定这是否可以在另一个 Stack Exchange 站点上询问。如果你找到了,请务必阅读他们的文档,类似于 Stack Overflow 的 tourWhat topics can I ask about here?

标签: google-cloud-platform google-cloud-run


【解决方案1】:

计费非常简单:您支付 CPU 时间和分配的内存时间(以及一点点请求数)。

当前最坏的情况是:(NbCpu per instance per seconde + Memory per instance per seondes) * 3600 * 24 * 30 * 1000.

  • 3600 是在一小时内转换秒
  • 24 转换为一天中的小时
  • 30 转换月中的一天
  • 1000 默认最大实例参数

如果您想限制费用,limit the max instance parameter。但是你也会限制应用程序的可扩展性。但这会阻止你有天文数字的账单,这是一个权衡的问题。

关于计费,也可以set an alert in the budget of your project

关于应用程序使用的资源数量的最后一个问题。很难说!但是,您必须了解您的应用程序。指标图可以帮助您提供一些输入。

但是,Cloud Run 能够process up to 80 concurrent requests。因此,当您一次只处理 1 个请求时,您的指标可能会随着 80 个请求而发生巨大变化!尤其是内存消耗!

您还可以使用此并发参数来限制一个实例的大小。但是你是否减少它,不要将最大实例参数设置得太低,否则某些请求将不会被服务。

权衡问题

【讨论】:

  • 据说前 180,000 vCPU-seconds 是免费的。但是触发秒计算的事件是什么?这是否仅由用户在调用已部署服务时发出的请求触发?或者是否还包括各种服务配置(即部署 Docker 镜像、启动容器等)?
  • 如果最坏情况的公式是(NbCpu per instance per seconds + Memory per instance per seconds)* 3600 * 24 * 30 * 1000,那么我知道每月的最大秒数是多少。但是我怎么知道应用程序每秒钟(和每个实例)占用多少 CPU/内存?
  • 使用 Cloud Run,您的实例仅在处理请求时才处于活动状态(来自用户、调度程序、其他服务,都没有关系)。没有任何请求,您无需付费,并且 CPU 被限制在接近 0% 的水平。因此,您无需支付任何费用而无需处理任何请求,而且它对 Google 没有任何“成本”,因为您不消耗 CPU(并且它可以被其他服务使用)。因此,最后,如果您知道您的请求处理时间和请求数量,您就知道您的帐单了。
  • @guillaumeblaquiere,关于“您支付 CPU 时间和消耗的内存时间” - 我认为“消耗”在这种情况下不是一个合适的措辞,我猜你的意思是“分配”或“预订”。可以修一下吗?
  • @Ruslan,已修复。感谢您帮助改进措辞
猜你喜欢
  • 2011-08-19
  • 2020-12-15
  • 1970-01-01
  • 2012-01-09
  • 2020-02-23
  • 2022-10-02
  • 2020-04-16
  • 2021-06-25
  • 2020-10-19
相关资源
最近更新 更多