云 运行,每个实例的理想 vCPU 和内存量?

Cloud Run, ideal vCPU and memory amount per instance?

在搭建云时运行,我很担心每个服务器实例每次应该设置多少内存和vCPU。

我将云 运行 用于移动应用程序。

我很困惑什么时候增加 vCPU 和内存而不是增加服务器实例,什么时候增加服务器实例而不是 vCPU 和内存。

我该如何计算?

您可以使用 k6.io 在当前设置中模拟请求负载,检查容器的内存和 cpu 百分比并将它们调整为较低或较高的设置,看看是否可以从单个容器中获取更多 RPS。

一旦您对单个容器实例感到满意,假设每个容器实例 100 rps,您就可以使用 gcloud 标志 --min-instances--max-instances 指定,当然取决于--concurrency 标志,在我的解释中将设置为 100。

另请注意,它从默认值 80 开始,最高可达 1000。

有关此的更多信息,请访问以下链接: https://cloud.google.com/run/docs/about-concurrency https://cloud.google.com/sdk/gcloud/reference/run/deploy

我还建议您调查是否需要传递 --cpu-throttling 标志或 --no-cpu-throttling,具体取决于您对冷启动进行调整的需要。

这个问题没有很好的答案。你必须知道限制:

  • 4cpu最大并发请求数or/and32Gb内存(最多1000个并发请求)
  • 云上实例的最大数量运行 (1000)

那么这是一个权衡问题,它在很大程度上取决于您的用例。

  • 更大的实例减少了冷启动的次数(以及当您的服务扩展时的高延迟)。但是,如果您一次只有 1 个请求,您将为小处理支付大实例
  • 较小的实例允许您优化成本并仅在集群中添加一小部分资源,但是您将不得不经常生成一个新实例并且您将要忍受几次冷启动。

优化你喜欢的东西,找到合适的平衡点。没有神奇的公式!!