2016-11-20 36 views
6

据我可以读取文档,这两个设置都做同样的事情:当一个请求花在待处理队列中的时间比设置长时,启动一个新的实例。GAE:<min-pending-latency>和<max-pending-latency>之间有什么区别?

<max-pending-latency> App Engine在启动新实例来处理它之前应该允许请求在未决队列中等待的最长时间。默认值:“30ms”。

  • 较低的最大值意味着App Engine将尽快为未决请求启动新实例,从而提高性能,但会增加运行成本。
  • 较高的最大值表示用户可能会等待较长的时间来处理它们的请求,如果存在挂起的请求并且没有空闲实例为它们提供服务,但您的应用程序运行成本较低。

<min-pending-latency> 的最小时间量的App Engine应该允许一个请求在等待队列开始一个新的实例来处理它之前等待。

  • 当所有现有实例处于活动状态时,最小值意味着请求必须在待处理队列中花费更少的时间。这会提高性能,但会增加运行应用程序的成本。
  • 如果所有现有实例都处于活动状态,则最小值意味着请求将保持更长时间。这降低了运行成本,但增加了用户必须等待其服务请求的时间。

来源:https://cloud.google.com/appengine/docs/java/config/appref

什么是最小值和最大值,然后有什么区别?

回答

7

您可能会忽略了解这些设置的一条信息,即App Engine可以选择在最小挂起延迟时间和最大挂起延迟时间之间随时创建一个实例。

这意味着在min-pending-latency之前永远不会创建实例来提供挂起的请求,并且一旦达到max-pending-latency,就会一直创建该实例。

我相信了解的最好办法是看事件的时间表时,请求进入等待队列:

  1. 的请求到达应用程序,但任何情况下都可以服务于它,所以它是放置在待处理的请求队列中。
  2. 直到分钟待批延迟达到:App Engine的试图找到一个可用实例来服务请求和不会产生一个新的实例。
  3. 将达到最小未决延迟直到最大待批延迟达到:App Engine的试图找到可用的情况下,服务请求和可以选择创建一个新的实例。
  4. 最大待批延迟后达到:App Engine的停止搜索可用的情况下,服务请求和创建一个新的实例。
相关问题