2016-11-20 134 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的停止搜索可用的情況下,服務請求和創建一個新的實例。
相關問題