2013-04-01 38 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请求循环造成的。

相关问题