【问题标题】:instance latency in Google App EngineGoogle App Engine 中的实例延迟
【发布时间】:2012-02-21 07:15:40
【问题描述】:

我正在运行一个免费应用程序并使用 GAE 的 Python 运行时使用 1 个最大空闲实例。

根据http://code.google.com/appengine/docs/adminconsole/instances.html

您的应用程序的延迟对 为您的流量提供服务所需的实例。如果您服务请求 很快,一个实例就可以处理很多请求。

这似乎表明最好将“应用程序设置”中的滑块调整到最小延迟。

但是,根据http://code.google.com/appengine/docs/adminconsole/performancesettings.html#Setting_the_Minimum_Pending_Latency

似乎具有高延迟有利于防止负载峰值启动新实例。

那么延迟基本上是在响应请求峰值的能力(高延迟)与在给定时间段内处理的请求数量(低延迟)之间的权衡吗?

【问题讨论】:

  • 通过延迟,文档意味着您的代码响应请求的延迟。调整滑块与此无关。如果您遇到高延迟但您的代码很快,这意味着 AppEngine 需要启动您的应用程序的新实例。可能是你刚刚上传,或者长时间没有人使用,空闲的实例已经关闭,或者其他正在运行的实例卡住了。

标签: google-app-engine latency


【解决方案1】:

“待处理延迟”是指在 App Engine 决定启动另一个实例之前,请求可以在队列中等待多长时间。如果请求到达时您的所有应用程序实例都处于忙碌状态,则该请求将在队列中等待下一个可用实例处理。如果超出最小值,App Engine 可能会决定启动一个新实例来处理请求。 (您还可以调整最大等待延迟设置。)

最小挂起延迟是可配置的,因为启动新实例需要时间和成本。较大的最小挂起延迟意味着 App Engine 将在启动新实例之前将挂起的请求保留更长时间(并让它们等待),从而有利于处理更多流量的能力。较小的最小挂起延迟意味着 App Engine 将随着流量增加而更频繁地启动新实例。

术语“延迟”只是指您的应用响应请求所需的时间。您的应用程序响应请求的速度越快,单个实例可以处理的请求就越多,请求队列通常也就越短。较低的延迟总是好的,但它需要由应用快速完成。

【讨论】:

  • 嗨,丹,虽然您的回答已经 4 岁了,但它仍然具有相关性。 <min-pending-latency><max-pending-latency> 有什么区别?
  • 这两个值都指自动缩放器在发现待处理队列中未完成的请求时决定启动新实例的时间。最低要求是“在请求至少存在这么长时间之前,不要尝试启动新实例。”最大值表示“如果请求已经存在这么长时间,请启动一个新实例。”这两个值之间有一些摆动空间,或者最大值为“自动”值(默认值),允许缩放器猜测何时需要哪些资源。参考:cloud.google.com/appengine/docs/python/config/…
猜你喜欢
  • 2011-12-28
  • 2017-04-29
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 2013-01-03
  • 1970-01-01
相关资源
最近更新 更多