【问题标题】:How to scale Google App Engine instances down to 0 when there is no traffic?没有流量时如何将 Google App Engine 实例缩减到 0?
【发布时间】:2020-07-15 00:42:41
【问题描述】:

我在 GAE 上托管一个应用程序,并希望在没有流量时启用自动缩减到 0 个实例。我认为指定min_instances: 0 会允许这种情况发生。我还包括了文档中推荐的warmup 流程。

我早上向应用程序发送了一个请求,但没有再次触摸它,但它仍然花费了 10 多个实例小时。

谁能告诉我如何在标准环境中启用缩减到 0 实例?

我还要注意,我正在使用其他一些 GCP 服务,包括 pubsub 和 secretmanager。这些会累积 F 级实例小时数吗?

service: default
runtime: python37

instance_class: F4_1G

automatic_scaling:
  target_cpu_utilization: 0.80
  min_instances: 0    # should enables aut-scaling down to 0 instances when no traffic
  max_instances: 2
  max_pending_latency: 2000ms
  min_pending_latency: 30ms    # default

entrypoint: python -m api.app

handlers:
  - url: /home
    script: auto


inbound_services:
  - warmup    # sends GET request to application's /_ah/warmup endpoint

【问题讨论】:

  • 只是为了确认一下,您还向您的应用添加了 /_ah/warmup 路由,对吗?
  • 我做到了,是的。它只返回 200 OK
  • 实例是空闲的还是活动的?另外,您确定应用程序正确终止并且不会继续在后台做一些额外的工作吗?
  • 闲置,我想。应用程序没有流量,也没有流量离开。实例的availability 是“动态的”。我没想过要验证所有后台任务。嗯,我接下来检查一下。谢谢。
  • 确实有一个子进程并不总是被正确杀死。似乎上面的 YML 对于自动缩小到 0 实例是可行的。谢谢!

标签: python google-app-engine google-cloud-platform


【解决方案1】:

正如the docs 中提到的那样

App Engine 可以自动创建和关闭实例作为流量 波动,或者您可以指定要运行的实例数 流量。

这意味着如果一个实例在日志时间内没有工作,它将被关闭,或者如果您配置了min_idle_instances,这个实例将继续运行并准备好为流量提供服务。

在 App Engine 控制面板上,选择实例菜单,然后在摘要下拉列表中选择实例,您将能够看到您的实例是否处于活动状态。

如果有活动的实例,这可能意味着您的实例仍在做一些工作、后台任务或可能有什么卡住了。

如果有空闲实例,这将感谢您的app.yaml config file,您在其中设置了最少的空闲实例并且没有工作但准备好服务,但是您也需要为此实例付费。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2014-11-08
    • 1970-01-01
    相关资源
    最近更新 更多