配置AppEngine的闲置实例数量
我正在尝试让我的应用程序始终保持几个空闲的实例。
以下是我的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个实例来应对请求。当人们去睡觉时,你的应用会缩减到你设置的最小实例数量,并保持在那里。