【问题标题】:max_num_instances for Google App Engine Standard EnvironmentGoogle App Engine 标准环境的 max_num_instances
【发布时间】:2018-07-01 00:29:43
【问题描述】:

目前,我正在使用 Google App Engine 标准环境 (Python) 运行应用程序

在免费配额每天重置 24 小时前只有 1 或 2 小时,我将用完所有 28 个实例小时

我的流量模式大部分时间都很低,但夜间 8 小时左右会很高。

我的app.yaml 几乎回退到所有默认设置

application: my-webapp
version: 1
runtime: python27
api_version: 1
threadsafe: false

我仍然想依靠automatic_scaling。我希望稍微降低我的应用引擎性能,以换取不收取每日费用。

在柔性环境中,我意识到有一个我们可以指定的配置

https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 1

我想在我的 App Engine 标准环境中限制实例的最大数量。但是,我在标准环境中找不到 max_num_instances 配置。

https://cloud.google.com/appengine/docs/standard/python/config/appref#scaling_elements

我在标准环境的automatic_scaling 下找到的有效配置是

  • max_concurrent_requests
  • max_idle_instances
  • max_pending_latency
  • min_idle_instances
  • min_pending_latency

我想利用所有 28 个实例小时,性能略有下降,但不产生每日费用 :)

请问,我应该开始微调哪个配置参数?


更新

我试过了

automatic_scaling:
  max_idle_instances: 1
  min_idle_instances: 0
  max_concurrent_requests: 80

然而,这似乎让事情变得更糟。

创建了 5 个实例,但没有一个处于活动状态?!

现在,我只处理了 2k 个请求,但已经消耗了 16.8 个实例小时


与我的另一个应用程序相比,该应用程序提供更高的流量(但延迟更低)。它始终只有 1 个实例。到目前为止,仅消耗了 8.43 个实例小时

我的高流量应用 yaml 文件中没有任何特殊参数。因此,我不确定为什么它们生成的实例数量存在差异。

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    如果您的应用支持它(并非所有应用都支持!- 这取决于它们的编码方式)尝试设置 threadsafe: true,允许一个实例并行处理多个请求,这将减少整体请求延迟,从而有助于GAE 自动扩缩器决定启动更少的实例。如果可行,您还可以尝试调整相关的max_concurrent_requests

    要尝试的另一件事是通过min_pending_latencymax_pending_latency 通知自动缩放器您的应用可以容忍更高的请求延迟。相关:

    max_idle_instances 设置为 1(如果可以的话,甚至可以设置为 0),以防止自动缩放器启动实际上对服务流量没有多大帮助的空闲实例。见What does setting the automatic_scaling max_idle_instances to zero (0) do?

    最后,如果您真的想对您的实例数量设置一个硬性上限,您可以切换到基本扩展,它有一个max_instances 配置选项。但请注意,如果您的请求负载突然很高,这会严重降低用户体验。

    【讨论】:

    • 是的。更改为 threadsafe: true 确实有帮助。以前,我有一些不支持threadsafe: true 的CGI 处理程序(非webpy)。在我将它们全部转换为 webpy 并使用threadsafe: true 之后,它就解决了我的问题。谢谢。
    猜你喜欢
    • 2018-03-12
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 2017-09-22
    • 2018-03-29
    • 2020-08-27
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多