Google App Engine 自动缩放如何工作?
Posted
技术标签:
【中文标题】Google App Engine 自动缩放如何工作?【英文标题】:How does Google App Engine Autoscaling work? 【发布时间】:2017-04-16 21:36:48 【问题描述】:这个问题是关于 Google App Engine 配额和实例的。
我部署了一个 GAE 应用程序,但没有指定任何特定的扩展算法。从他们的文档来看,默认值似乎是自动缩放。
那么,他们何时将应用扩展到另一个实例,即新实例究竟何时生成?什么请求会导致第二个实例启动并拆分流量?
【问题讨论】:
在假设你被敲诈之前做更多的研究。不好笑。并且在他们的文档中得到了很好的解释。 然而,在生成新实例之前,每个实例类可以服务多少个请求/秒并没有答案。当然,他们的文档解释是合乎逻辑的:实例为请求提供服务,直到它不再能够为它们提供服务,然后新的请求被发送到一个新的旋转实例。但是你不认为提供一个数字会有所帮助吗?他们的文档很大,如果我遗漏了什么,请原谅我,但如果我在经过足够的搜索后找到了答案,我就不会在我的问题中做出任何大胆的陈述 例如,这就是 Heroku 的文档对 dynos 的评价:devcenter.heroku.com/articles/dynos#dynos-and-requests。至少在每秒大约 1000 个请求之前,用户知道他们是好的(当然要考虑到他们的延迟)。 【参考方案1】:其实解释得很好。
来自Scaling dynamic instances:
App Engine 调度程序决定是否为每个新请求提供服务 使用现有实例(空闲或接受 并发请求),将请求放入待处理的请求队列中,或 为该请求启动一个新实例。该决定考虑到 可用实例的数量,应用程序的运行速度 一直在处理请求(它的延迟),以及启动需要多长时间 一个新的实例。
每个实例都有自己的传入请求队列。应用引擎 监控每个实例队列中等待的请求数。如果 App Engine 检测到应用程序的队列过长 由于负载增加,它会自动创建一个新的实例 处理该负载的应用程序。
可以调整自动缩放的参数,请参阅 Change auto scaling performance settings 和 Scaling elements
如果您真的想对实例数量施加硬性限制,您可能必须使用带有max_instances
配置的基本扩展或手动扩展。
【讨论】:
以上是关于Google App Engine 自动缩放如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
基于“已用”内存的 Google Compute Engine 自动缩放
如果我们将 App Engine 配置为自动缩放,它会自动进行负载平衡吗?