2014-09-04 63 views
2

我正在嘗試設置我的應用程序始終有一些空閒的實例。配置AppEngine上的空閒實例數

這裏是我的app.yaml的摘錄:

version: 3 
runtime: python27 
api_version: 1 
threadsafe: yes 

instance_class: F2 
automatic_scaling: 
    min_idle_instances: 5 
    max_idle_instances: automatic 
    min_pending_latency: automatic 

handlers: 

- url: .* 
    script: app.app 

libraries: 
- name: jinja2 
    version: latest 

一些信息:的應用是付費,有幾個模塊 - 所有默認設置運行。

對於這個特定的模塊(默認),我想設置空閒實例並將相關代碼添加到app.yaml(這是默認實例的yaml配置)。

目前會發生什麼情況是,應用程序上傳成功(建議在YAML沒有語法錯誤) - 但沒有變化是在管理控制檯待觀察。

任何想法爲什麼?

配置來源:AppEngine Python Modules Docs

+1

您在管理控制檯中發現了哪些變化? – marcadian 2014-09-05 02:24:15

+1

您必須添加'module:default'以使用這些設置。 – Mario 2014-09-05 07:36:02

+0

@marcadian我期望在「實例」下看到5個標籤爲「resident」或「idle」的實例。目前存在可變數量的實例(通常爲1或0,當沒有流量時),總是標記爲「dynamic」 – 2014-09-05 09:23:25

回答

3

一些挖掘和測試後,我有一個解釋。 (對於將來的讀者,這不適用於Java)當你在Python中設置最小實例數時,它不會將實例後臺處理。原因是Python的啓動時間通常非常快。一旦實例被調用,雖然它不會殺死它們,除非它超過了最小值。 EX:

您將最小空閒實例設置爲5.流量很少,因此只有一個生成。它會停留在1.現在突然你的網站得到Facebook的編輯和你得到足夠的流量3個實例,它會產生2個新的。當交通停頓下來時,這3個將無限期地活着。現在,您的網站得到推文,並且您的流量需要10次才能跟上請求。當人們上牀時,你的應用程序將縮減到最低限度的實例並停留在那裏。

+0

這可能解釋很多!謝謝@Bruyere,會在我身邊試試這個:D – 2014-09-10 09:39:42

+0

我認爲這解釋了這一點:https://developers.google.com/appengine/docs/python/modules/#Python_Instance_states – 2014-09-10 11:42:50