Luk*_*kas 18 python google-app-engine memory-leaks
我已经使用app引擎很长一段时间了,我知道有appstats但是那些只显示数据存储/ 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
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:什么是最好的方式(在最新的appengine sdk上)分析/监视内存/捕获内存泄漏和其他python内存相关的东西(在本地或谷歌服务器上)?
顺便说一句,我们使用Python 2.7,我们正在使用Mac OS X(10.7.4)
这篇文章是3岁,但我认为这个答案仍然值得分享,以帮助他人.我有优质的Google App Engine支持,并就此问题与他们联系.
Google工程师告诉我,Google App Engine 运行时API已弃用,但仍在运行.它提供了一个名为memory_usage的方法.
from google.appengine.api.runtime import runtime
import logging
logging.info(runtime.memory_usage())
Run Code Online (Sandbox Code Playgroud)
这将输出内存使用情况统计信息,其中数字以MB表示.例如:
current: 464.0859375
average1m: 464
average10m: 379.575
Run Code Online (Sandbox Code Playgroud)
通过将日志记录语句放在代码中的关键点,可以确定哪个部分导致内存泄漏.
我认为这是最好的实用程序
appengine-profiler - Python 中的 Google App Engine 分析器 - Google 项目托管 -> 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%)
Run Code Online (Sandbox Code Playgroud)
您也可以使用 memcacheApi 和其他工作人员
| 归档时间: |
|
| 查看次数: |
2916 次 |
| 最近记录: |