我在应用程序中使用 Cloud Run,并尝试使用 GCP 定价计算器来预测成本。我不明白为什么总是分配 CPU 比在请求处理期间分配 CPU 更便宜,因为它说“当您选择“始终分配 CPU”时,您需要为容器实例的整个生命周期付费”。
有什么解释吗?
谢谢!
Cloud Run 默认情况下是无服务器的:即用即付。当请求到来时,会创建一个实例(并启动,称为冷启动)并处理您的请求。计时器启动。当您的网络服务器发送答案时,计时器停止。
您需要为请求处理期间使用的内存和 CPU 付费,四舍五入到上限 100 毫秒。实例继续存活约 15 分钟(默认情况下,可以随时更改)以准备好处理另一个请求,而无需启动另一个请求(并再次等待冷启动)。
如您所见,即使您不再为其付费,实例也会继续存在。因为您仅在处理请求时付费。
当您将 CPU 设置为始终开启时,您需要为实例运行的全部时间付费。无论请求处理与否。 Google 不必为正在运行但未使用的实例付费,而是按照按使用付费模式等待请求。您为此付出了代价,而且您付出的更少
它就像一个全职的计算引擎。作为计算引擎,您可以获得类似于持续使用的折扣的东西。所以比较便宜。
一般来说这取决于你如何使用云跑。谷歌在这里给出了一些提示:https://cloud.google.com/run/docs/configuring/cpu-allocation
总结最大的定价差异:
您支付的费用为:
你付钱
在此处比较定价:https://cloud.google.com/run/pricing
因此,如果您有很多请求,但不使用大量资源且差异不大,那么“始终分配”可能会便宜很多。
有时,“CPU 始终分配”实际上可能比“请求处理期间分配”更便宜,因为您的使用量属于 “承诺使用折扣”。 详细信息如下: 承诺使用折扣|云跑文档
顺便说一句,它特定于 us-central1 区域。您可以通过在定价计算器中选择不同的区域来查看定价变化。