配置AppEngine的闲置实例数量

2 投票
1 回答
558 浏览
提问于 2025-04-19 20:00

我正在尝试让我的应用程序始终保持几个空闲的实例。

以下是我的app.yaml文件的一部分:

version: 3
runtime: python27
api_version: 1
threadsafe: yes

instance_class: F2
automatic_scaling:
  min_idle_instances: 5
  max_idle_instances: automatic
  min_pending_latency: automatic

handlers:

- url: .*
  script: app.app

libraries:
- name: jinja2
  version: latest

一些信息:这个应用是收费的,有多个模块 - 所有模块都在默认设置下运行。

对于这个特定的模块(默认),我想设置空闲实例,并已将相关代码添加到app.yaml中(这是默认实例的yaml配置文件)。

目前发生的情况是,应用程序成功上传(这表明yaml文件没有语法错误) - 但是在管理控制台中没有看到任何变化

你知道为什么吗?

配置来源:AppEngine Python模块文档

1 个回答

2

经过一些研究和测试,我有了一个解释。(对于未来的读者,这不适用于Java)当你在Python中设置最小实例数量时,它并不会立即启动这些实例。原因是Python的启动时间通常非常快。不过,一旦实例被调用,它们不会被关闭,除非超出了你设置的最小数量。举个例子:

你把最小空闲实例设置为5。因为流量很少,所以只启动了一个实例。这个实例会保持在1个。然后突然间,你的网站被分享到Facebook上,流量增加到需要3个实例,这时会再启动2个新的实例。当流量减少时,这3个实例会一直保持活着。接着你的网站又被推特上了,流量需要10个实例来应对请求。当人们去睡觉时,你的应用会缩减到你设置的最小实例数量,并保持在那里。

撰写回答