【问题标题】:About Cloud Run charges by hardware resources: Am I billed for underused memory?关于按硬件资源收取的 Cloud Run 费用:我是否需要为未充分使用的内存付费?
【发布时间】:2021-04-20 21:16:53
【问题描述】:

我有一个关于 Cloud Run 的问题:例如,如果我使用 4GB 的 RAM 和 2 个 vCPU 来设置我的服务,而不是标准的 256MB 和 1 个 vCPU,那么即使我从不消耗所有我提供的资源?再次举例,假设我将 --memory 设置为 6GB,并且没有任何请求消耗超过 2GB,考虑到使用高峰是 2GB,我会支付 6GB 的 RAM 还是 2GB?

我问是因为我想确保我的应用程序永远不会耗尽内存,因为我认为 Cloud Run 的默认 256MB 对我来说还不够,但我想确定 Google 如何收费和秤。

【问题讨论】:

  • 您为分配的内容付费。分配 6 GB - 为 6 GB 付费。

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


【解决方案1】:

这是docs的引述:

您只需为计费时间内分配的 CPU 和内存付费,四舍五入到最接近的 100 毫秒。

意思是,如果您在 Cloud Run 服务上分配了 4GB 内存,那么无论是否未充分使用,您仍需支付 4GB 的费用。

在您的情况下,由于您想确保请求不会耗尽内存,因此您可以将实例资源专用于每个请求。这样,您只需找出可以运行您的请求的最便宜的内存设置,并将concurrency 设置限制为一个。

或者,利用并发性(并分配更高的内存),因为 Cloud Run 允许并发请求,因此您可以在启动新实例之前控制有多少请求可以共享资源,这可能是一件好事,因为它有助于降低成本并最小化启动许多实例(请参阅cold starts)。如果您确信一定数量的请求可以共享一个实例而不会耗尽内存,那么这可能是一个更好的选择。

当更多的容器实例在处理请求时,将使用更多的 CPU 和内存,从而导致更高的成本。当需要启动新的容器实例时,处理请求可能需要更多时间,从而降低服务的性能。

请注意,每种方法都有不同的优点和缺点。在做出决定之前,您应该注意每一个。使用GCP Calculator 来试验成本会有所帮助(计算器在计算中包含Free Tier)。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 2020-10-30
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多