2013-04-01 62 views
2

我的網站有大約50個用戶,我收到了過多的小型數據存儲操作。我積極地memcaching,沒有那麼多的記錄,我仍然得到數百萬的小型數據存儲操作。 Appstats表示成本爲0,但實際成本不爲0. 我基本知道小數據存儲操作可能發生的位置。谷歌應用程序引擎過多的數據存儲小操作

只有鍵操作:我這樣做,但我memcache它,直到數據沒有改變。此外,我的大部分關鍵操作都有限制= 100(這是最大),所以要獲得12米的操作,我需要撥打120000個電話(我假設提取1個鍵是1個小操作)。由於我每天約有60-70次訪問,似乎有點過分。 我只是不知道是什麼造成了很多操作。 Appstats不給我任何線索。

這是儀表板。 enter image description here

這是appstats。 enter image description here

+0

您是否使用遠程API?是否爲你的整個應用程序啓用了appstats? – someone1

+1

根據此https://developers.google.com/appengine/docs/python/tools/appstats#EventRecorders啓用是的appstats第二個數字是RPC統計數據。 – specialscope

+1

那麼有可能你的代碼的一部分沒有使用appstats包裝器進行包裝。你必須確保你的應用中的每個端點都使用它。例如,如果您使用mapreduce,它不會使用應用程序統計信息。所有通過Remote API進行的操作也不會使用應用程序統計信息。 App Stats只將最近的1000條記錄存儲在memcache中,所以它可能甚至沒有給出您的應用程序的準確概述(尤其是所有最近與短命的memcache條目有關的問題) – someone1

回答

1

您是否在使用很多counts?看起來像這樣可以導致過多的數據存儲小操作be a problem

我沒有您的代碼,但this answer在遇到此問題時有一些優化您的代碼的建議。

而且,看看類似的問題 - Google app engine excessive small datastore operations類似的答案

+0

感謝您的回答,我沒有做數量太多,我儘可能緩存。在任何情況下,對50名用戶的12米操作似乎都沒有公園。一些時髦的東西必須與我的代碼一起發生,我希望有一種方法可以在開發方面做一些分析。我的代碼超過35KLOC,因此不能在這裏發佈。 – specialscope

+0

當你說appstats,righT時,你正在討論[this](https://developers.google.com/appengine/docs/python/tools/appstats)? – matt

+0

是的,這正是我的意思是看截圖。 – specialscope

0

我注意到這個老問題還沒有解決,所以根據您的信息,這裏是另一個潛在原因。

在一個非常新鮮的公共Azure虛擬機實例(xxx.cloudapp.net)上運行我的GAE SDK,我注意到很多bot流量試圖找到一個通用的開源CMS或購物車的管理頁面。我相信這是由於殭屍程序使用AXFR請求或強力檢測子域。

確保您阻止了任何有害的bot流量,並且不向他們提供動態頁面,從而更多地擊中您的數據存儲區。

同樣的情況也可能是由這50個用戶請求的每一頁上的惡意AJAX請求循環造成的。

相關問題