如何在App Engine应用程序中分析内存(RAM)的使用情况?我正在尝试解决与超出实例内存限制相关的错误。我尝试过这些东西,到目前为止,它们不起作用或者没有提供我需要的东西。
guppy.hpy()
失败并显示ImportError: No module named heapyc
我对上述任何一项都不对吗? this问题上评分最高的答案(不是可接受的答案)表示无法监控App Engine上的内存使用量。这不可能是真的。可以吗?
修改
我可以确认GAE迷你探测器可以完成这项工作。安装后,我可以将UI中的设置更改为“带内存采样”,然后查看此读数:
感谢所有contributors!
答案 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