2011-04-19 50 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%。如果你没有使用任何敏感数据,你可以尝试一下。