2014-10-10 64 views
0

我有一個相對較低的流量應用,可以在95%以上的時間內輕鬆地通過單個實例進行處理。偶爾,運行多個實例將有助於提供更好的用戶體驗。在單個實例中保持GAE可靈活擴展

GAE似乎應該能夠以這種方式進行自動縮放,但我不能讓GAE在流量較低時僅保留一個實例。這是我曾嘗試:

  • 設置最低實例1
  • 設置最大實例3
  • 設置最低待處理延遲時間爲1秒
  • 設置最大待處理延遲時間設置爲自動(也1秒)

有了這個配置,GAE幾乎總是會運行兩個實例,即使只有一個是足夠的。

我知道我可以將最大實例設置爲1,但我希望能夠在需要時自動縮放。

是否有可能做我想要的東西?

回答

3

請注意,您正在設置的最小/最大屬性適用於IDLE實例。

  • Set min instances to 1意味着你將永遠有至少一個實例中運行,即使有15分鐘以上的請求。如果您的流量較低,並且您的應用快速啓動(例如1-2秒),則該值可以設置爲0,否則用戶在第一次請求時響應速度會非常慢。

  • Set max instances to 3意味着即使只有很少的請求,GAE也可以隨時保持三個實例運行。這可以設置爲1以節省一些成本,但會在流量增加時使請求變慢(啓動新實例所需的時間+啓動應用的時間)。

max-idle-instances不限制流量高峯的事件實例的數量,您的應用程序將永遠規模,並在需要新的實例將繼續推出。最小/最大設置僅用於幫助處理突然增加的流量,並且無法限制可啓動的實例數量。

看看這篇文章的一些細節:Setting the Number of Idle Instances

關於你的問題,你可以嘗試降低max-idle-instances1,看看有沒有什麼幫助。您不必擔心縮放問題,如果需要新的實例仍會啓動,請記住,用戶的體驗可能不盡如人意。如果您減少了max-idle-isntances的數量,並且您仍然看到超過1個實例在非常低的流量上運行,那麼您的應用可能需要進行優化,如果不是,則可能需要啓用多線程。

+0

謝謝,非常有幫助! – 2014-10-11 14:41:08