分析App Engine

时间:2015-06-09 20:22:28

标签: python google-app-engine memory

如何在App Engine应用程序中分析内存(RAM)的使用情况?我正在尝试解决与超出实例内存限制相关的错误。我尝试过这些东西,到目前为止,它们不起作用或者没有提供我需要的东西。

  • 将Appstats。这不提供内存使用详细信息。
  • Apptrace。它自2012年以来未更新,并取决于SDK的弃用版本。不开箱即用。
  • Appengine-profiler。不提供内存统计信息。
  • Gae-mini-profiler,使用cProfile。不提供内存统计信息。
  • guppy。在我的应用程序文件夹中下载并安装库代码后,运行guppy.hpy()失败并显示ImportError: No module named heapyc
  • resource。不属于SDK的python版本,所以我不能使用它。

我对上述任何一项都不对吗? this问题上评分最高的答案(不是可接受的答案)表示无法监控App Engine上的内存使用量。这不可能是真的。可以吗?

修改

我可以确认GAE迷你探测器可以完成这项工作。安装后,我可以将UI中的设置更改为“带内存采样”,然后查看此读数:

Example UI showing memory usage

感谢所有contributors

2 个答案:

答案 0 :(得分:7)

如果您使用采样分析器并设置memory_sample_rate非零,则GAE Mini Profiler会提供内存统计信息;在每个快照,它会告诉你正在使用的内存。您需要将采样频率调低,因为内存采样需要几毫秒才能执行。

编辑:它获取内存统计信息的方式来自GAE runtime API,该GAE {@ 3}}已被弃用,但仍然是我知道的最后一次工作;我不确定是否有一个好的替代品。

答案 1 :(得分:3)

要添加到Ben's answer,截至2015年11月16日,尽管已被弃用,Google App Engine runtime API仍然有效。目前还没有谷歌的官方替代品。

from google.appengine.api.runtime import runtime
import logging

logging.info(runtime.memory_usage())

这将输出内存使用情况统计信息,其中数字以MB表示。例如:

current: 464.0859375
average1m: 464
average10m: 379.575
相关问题