GAE:<min-pending-latency>和<max-pending-latency>之间有什么区别?

Dzm*_*rka 6 google-app-engine

就我可以阅读文档而言,两个设置都做同样的事情:当请求在待处理队列中花费的时间超过该设置时,启动一个新实例.

<max-pending-latency>在启动新实例以处理请求之前,App Engine应允许请求在挂起队列中等待的最长时间.默认值:"30ms".

  • 较低的最大值意味着App Engine将更快地为待处理的请求启动新实例,从而提高性能但提高运行成本.
  • 高最大值意味着用户可能需要等待更长时间才能提供服务请求,如果有待处理的请求且没有空闲实例来提供服务,但您的应用程序运行成本会更低.

<min-pending-latency> 在启动新实例处理请求之前,App Engine应允许请求在挂起队列中等待的最短时间.

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

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

那么min和max之间的区别是什么?

Yan*_* MG 15

您可能缺少的用于理解这些设置的信息是,App Engine可以选择在最小挂起延迟和最大挂起延迟之间随时创建实例.

这意味着永远不会创建实例以在min-pending-latency之前提供待处理请求,并且一旦达到max-pending-latency,将始终创建实例.

我认为最好的理解方法是查看请求进入待处理队列时事件的时间轴:

  1. 请求到达应用程序但没有实例可用于提供它,因此它被放置在挂起的请求队列中.
  2. 在达到最小挂起延迟之前:App Engine会尝试查找可用于提供请求的实例,并且不会创建新实例.
  3. 达到最小挂起延迟并达到最大挂起延迟后:App Engine会尝试查找可用实例以提供请求,并可以选择创建新实例.
  4. 达到max-pending-latency后:App Engine 停止搜索可用实例以提供请求并创建新实例.