如何估算Google Cloud Run的费用?

问题描述

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

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

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

  • 我如何确切知道我的应用程序将占用多少资源?
  • 是否有可能,如果该应用程序是公开可用的,并且请求超出了免费限制配额,我会得到一笔天文数字的账单。
  • 我可以为我的账单设置一些限制吗?

解决方法

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

当前最坏的情况是:(每秒每实例NbCpu +每秒钟每实例NbCpu)* 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个请求而发生巨大变化!尤其是在内存消耗方面!

您还可以使用此并发参数来限制一个实例的大小。但是是否要减少它,请不要将max instance参数设置得太低,否则将无法满足某些请求。

权衡问题

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...