2017-06-15 147 views
2

我嘗試了一些不同結果的appengine應用程序的一些不同的設置。主要是我將實例類從F1改爲F2,我所經歷的所有成本都較高,而且性能沒有提高。現在我恢復到以下設置爲appengine應用程序選擇實例類和自動縮放

api_version: 1 
threadsafe: true 
module: default 
instance_class: F2 
automatic_scaling: 
    min_idle_instances: 5 
    max_idle_instances: automatic 
    min_pending_latency: automatic 
    max_pending_latency: 30ms 
    max_concurrent_requests: 50 

default_expiration: "14d 5h" 

以上看起來好嗎?當將實例類從F1更改爲F2時,爲什麼我沒有體驗到性能增益?我確實經歷了memcache和數據存儲區往返之間的巨大性能差異,因此似乎我加速我的應用程序響應時間的唯一機會是更多地使用memcache。

回答

1

存在實例類以支持縮放。具有更多RAM和更快CPU的實例可以處理比不太強大的實例更多的併發請求。因此,升級實例允許應用程序處理更多流量,但對單個請求時間的影響可能很小,除非請求使用大量RAM或CPU限制。

在App Engine中,數據存儲查詢是IO綁定的,因爲它們通過網絡發送請求。進行大量連續的數據存儲調用會增加響應時間。您可以使用雲控制檯跟蹤工具或Appstats查看您的請求正在進行的遠程過程調用。使用ndb's asynchronous operations可以減少應用程序花費在數據存儲區調用上的時間,並使用tasklets來並行讀取數據存儲區。

相關問題