当前位置: 首页 > 知识库问答 >
问题:

分析应用程序引擎上的内存使用情况

於彬
2023-03-14

如何配置我的应用程序引擎应用程序的内存(RAM)使用情况?我试图解决与超过实例内存限制相关的错误。我尝试过这些东西,到目前为止,它们不起作用或者不能提供我需要的东西。

  • Appstats。这不提供内存使用的详细信息

以上任何一点我都错了吗?在这个问题上,评分最高的答案(不是公认的答案)表示没有办法监控App Engine上的内存使用情况。那不可能是真的。可以吗?

编辑

我可以确认GAE mini profiler完成了这项工作。安装后,我可以将UI中的设置更改为“使用内存采样”,然后查看以下读数:

感谢所有的贡献者!

共有2个答案

姚正真
2023-03-14

再加上Ben的回答,截至2015年11月16日,尽管谷歌应用程序引擎运行时API已被弃用,但仍然有效。谷歌还没有正式的替代者。

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

logging.info(runtime.memory_usage())

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

current: 464.0859375
average1m: 464
average10m: 379.575
许俊雅
2023-03-14

如果您使用采样探查器并将memory\u sample\u rate设置为非零,GAE Mini Profiler会提供内存统计信息;在每个快照中,它都会告诉您正在使用的内存。您需要将采样频率调低,因为内存采样需要几毫秒才能执行。

编辑:它获取内存统计数据的方式来自GAE运行时API,该API已被弃用,但在我所知的最后一个版本中仍然有效;我不确定是否有好的替代品。

 类似资料:
  • 当我对一大群小对象(15k只有几个短字符串和布尔属性的对象)运行查询时,没有对这些对象做任何事情,我看到我的实例的内存使用量不断增加(增加了70Mb)。内存的增加看起来与查询所需的内存数据量不成比例。 我使用的循环如下所示: 为了确保这不是由于appstats造成的,我调用不记录任何统计数据。 有人知道会发生什么吗?或者关于如何调试/配置文件的任何提示? 更新1:我打开了,我看到垃圾收集器被定期调

  • 在python上的GoogleAppEngine中,我遇到了以下错误:在服务了总共2个请求后,超过了128 MB的软私有内存限制,达到了157 MB。我尝试使用以下命令来解决这个问题。上下文=ndb。获取上下文()和上下文。设置缓存策略(False)。我把这个方法放在appengine\u配置中。py,也在应该处理请求的处理程序中。我想知道是否还有其他地方可以放置这个命令,或者我是否应该总共使用一

  • 我们在谷歌应用引擎(GAE)上有一个长期运行的服务。然而,过了一会儿,我们开始得到图像中的错误。代码没有变化。我不明白为什么我们会有以前没有的问题。 2020-01-05 08:31:32.704UTC-8在总共服务0个请求后,超过了2048 MB的软内存限制(2068 MB)。考虑在app.yaml.中设置一个更大的实例类 2020-01-05 08:31:32.705UTC-8此请求导致为应用

  • 我们正在使用SpringSecurityACL基础设施与AppEngine数据存储相结合。我们不使用低级数据存储API,而是使用Objectify框架访问数据存储。我们需要将Spring SecurityACL模型(适用于RDBMS)转换为更适用于无模式面向对象数据存储的模型。到目前为止,我们已经完成了下面描述的两个实体。 国际计算语言学协会 id:Long 阿兰特里 sid:字符串 负责人:布尔

  • 问题内容: 我知道Valgrind,但它只是检测内存管理问题。我要搜索的是一个概述的工具,程序的哪些部分确实消耗了多少内存。带有树形图的图形表示(就像KCachegrind对Callgrind所做的那样)会很酷。 我在Linux机器上工作,所以Windows工具对我没有太大帮助。 问题答案: 使用massif,这是Valgrind工具的一部分。massif- visualizer 可以帮助您绘制数

  • 我看到了这个Python问题:应用引擎延迟:跟踪内存泄漏 ...同样,我也遇到了这个可怕的错误: 在为总共384个请求提供服务后,超过了128 MB的软专用内存限制 ... 处理此请求后,发现处理此请求的进程占用了太多内存,因此被终止。这可能会导致应用程序的下一个请求使用新进程。如果经常看到此消息,则应用程序中可能存在内存泄漏。 根据另一个问题,可能是“实例类”太小,无法运行这个应用程序,但是在增