2011-04-19 51 views
3

你做了什麼來確保CPU%低? 任何示例代碼要看?減少GAE CPU使用率的方法有哪些?

我問,因爲每個數據存儲讀取/查詢似乎推動CPU%超過100%,我得到我的儀表板中的黃色&紅色突出顯示。我從別的地方讀到這是正常的,但肯定有些事情可以做。

+0

你爲什麼要問?這如何影響你? – Will 2011-04-19 07:23:02

+0

呃?什麼是100%? – 2011-04-21 03:17:30

回答

7

使用appstats可以獲得有關任何長時間運行任務的更多詳細信息。它很好地分解了CPU時間花費的時間,並讓您深入瞭解單個調用並查看堆棧以縮小哪些命令運行時間很長。

Urlfetch和數據庫調用往往很昂貴。如Sam所暗示的那樣,兩者都可以是memcached,以實現非常顯着的節約。

appstats w00t

+0

但數據庫調用是IO,CPU在等待它們的同時休眠。 – Will 2011-04-20 06:50:48

5

您可以分析您的代碼並提高效率。

3

您的應用重新啓動了很多嗎?

我注意到即使是一個非常小的應用程序,它在一段時間內處於非活動狀態時也會花1秒以上的時間加載 - 這會在日誌中產生一個警告標記。

4

數據存儲操作非常昂貴。嘗試通過memcache減少其使用量

2

對於網頁可以緩存,您可以使用高速緩存控制,如果你有一個請求處理程序。

self.response.headers["Cache-Control"] = "public,max-age=%s" % 86400 

在許多情況下,您也可以使用cron作業定期更新緩存。

2

我已經編寫了a simple library,通過使用本地實例和memcache作爲存儲層以及數據存儲來減少數據存儲操作。它也支持緩存的GQL結果。我至少設法將應用程序的CPU使用率降低了50%。如果你沒有使用任何敏感數據,你可以嘗試一下。