googleappengin上的内存分析/监视(python)

2024-04-19 07:10:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用appengine已经有一段时间了,我知道有appstats,但是那些只显示datastore/memcache和其他与实际内存使用情况无关的统计信息。在

我已尝试与AppTrace(所有组件的最新版本)集成,但无法继续,因为我收到以下错误:

ImportError: dlopen(../apptrace/guppy/sets/setsc.so, 2): Symbol not found: __PyLong_AsScaledDouble
Referenced from: ../apptrace/guppy/sets/setsc.so
Expected in: flat namespace

我的问题是: 在最新的appenginesdk上,分析/监视内存/捕获内存泄漏和其他与python内存相关的东西(在本地服务器或Google服务器上)的最佳方法是什么?

顺便说一句,我们使用Python2.7,我们在MacOSX上工作(10.7.4)


Tags: 内存服务器信息sosets情况组件memcache
3条回答

这篇文章已经3年了,不过我觉得这个答案还是值得分享的,以帮助别人。我有高级谷歌应用引擎支持,并联系他们关于这个问题。在

谷歌工程师告诉我,Google应用引擎runtime API已被弃用,但仍能正常工作。它提供了一种称为内存使用的方法。在

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

logging.info(runtime.memory_usage())

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

^{pr2}$

通过将日志记录语句放在代码的关键点,您可以确定是哪个部分导致了内存泄漏。在

我认为在googleappengine中没有监控内存使用的工具,你可以评测程序、监控模块导入时间、代码覆盖率。所以不是检测小内存泄漏的工具。在

我认为这是最好的效用

appengine profiler-Python中的Google App Engine profiler-Google Project托管->;http://code.google.com/p/appengine-profiler/

08-13 12:40AM 04.586 /camstore/upload 200 508ms 351cpu_ms 293api_cpu_ms 0kb libwww-perl/5.825,gzip(gfe)
11.222.111.222 - - [13/Aug/2010:00:40:05 -0700] "POST /camstore/upload HTTP/1.1" 200 181 - "libwww-perl/5.825,gzip(gfe)"
"example.appspot.com:443" ms=508 cpu_ms=352 api_cpu_ms=293 cpm_usd=0.018512

[I] 08-13 12:40AM 05.021
  Request summary (uptime=161, ID=6C0D1DD1:1.999999999 : Google App Engine/1.3.6 @ na5):
  ms         =  425.66 (api_datastore_v3 =  98%, other =   2%)
  cpu_ms     =  326.67 (api_datastore_v3 =  95%, other =   5%)
  api_cpu_ms =  293.33 (api_datastore_v3 = 100%, other =   0%)

也可以使用memcacheApi和其他staf

相关问题 更多 >