2016-03-20 36 views
1

我注意到最近在GAE上產卵的情況急劇增加。如何限制GAE上的實例產卵(自動調整)?

在我的app.yaml中,我明確定義了最多兩個實例應該一次創建。

application: xxx 
version: 1-6-0 
runtime: python27 
api_version: 1 
instance_class: F2 
automatic_scaling: 
    max_idle_instances: 2 
threadsafe: true 

但儀表板顯示4個實例並且賬單正在增加。我怎樣才能阻止這種瘋狂? :)

enter image description here

回答

0

的「」「max_idle_instances」「」設置最大數目空閒實例,即在等待交通尖峯即實例。從你的屏幕截圖看,所有實例看起來都是流量,所以對我來說看起來還不錯。如果您想控制GAE上的支出,您可以設置最高每日預算。

1

max_idle_instances

App Engine會應保持 此版本IDLE實例的最大數量。

似乎目前無法設置自動縮放模塊的最大實例數。正如@DoIT所示,您可以設置支出限額,但請記住以下內容。

當應用程序超出其每日支出限額時,任何操作 免費配額已用盡失敗。

因此,如果您需要控制實例的總數並保持服務運行,我會看到以下幾種可能性。

  1. 您的縮放類型更改爲基礎,並設置max_instances參數,只要你喜歡

  2. 保持自動縮放類型,並增加min_pending_latencymax_concurrent_requests參數(多線程必須要開啓)

    你可以查找更多詳情here

+0

這將是一個很好的解決方案,但它可以做到這一點與F2實例?根據文件F系列總是自動調節。看起來'當使用手動縮放時,B1,B2,B4,B4_1G和B8實例類是可用的。「這反而只有8個空閒時間配額。 – Houman

+0

不幸的是,F類實例不適用於基本縮放。 – pgiecek

2

我對此做了大量的研究。

F實例會自動縮放。沒有辦法限制這一點。因此,將實際工作從前端實例移出並放入後端實例(B1或B2)中是有意義的。後者提供了另外8個小時的免費配額。

真正的挑戰是重新構建應用程序以使用默認的app.yaml進行web靜態,移動.yaml移動請求使用更短的min_pending_latency和backend.yaml(B2)實例來處理任務和計算。

所有這些都需要通過dispatch.yaml正確路由。在這個文件中,您可以指定哪個URL端點將由哪個模塊有效處理。要了解它

最好的辦法,是看從GAE這個優秀的example

這是有道理試圖使其工作第一對當地的環境,遠程服務器上的任何嘗試之前。

dev_appserver.py dispatch.yaml app.yaml mobile.yaml backend.yaml 

此外,這份官方文件解釋了上述更多detail中的一些。

它非常令人印象深刻,GAE可以實現什麼。

0

您的某些請求可能會花費很長時間才能完成,從而導致產生新的實例。你可以通過爲你的min_pending_latency屬性設置一個很高的值來解決這個問題(我被告知,但還沒有親自嘗試)。這可能會稍微傷害您的延遲,但也會限制實例產生的速度。