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

时间:2016-11-20 19:12:57

标签: 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之间的区别是什么?

1 个答案:

答案 0 :(得分:11)

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

这意味着永远不会创建实例以在最小挂起延迟之前提供待处理请求,并且一旦达到最大挂起延迟,将始终创建实例。

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

  1. 请求到达应用程序但没有实例可用于提供它,因此它被放置在待处理请求队列中。
  2. 直到达到最小待决延迟:App Engine 尝试查找可用实例以提供请求,将无法创建一个新的实例。
  3. 达到最小待定延迟并且直到达到最大延迟延迟:App Engine 尝试查找可用用于提供请求的实例,可以选择创建新实例。
  4. 达到最大待定延迟后:App Engine 停止搜索可用实例以提供请求,创建新实例