如何发现 Heroku 上的内存泄漏?

2024-04-04

我有一个在 Heroku Cedar 上使用 Ruby 1.9.3 运行的 Rails 3.2.8 应用程序。该应用程序启动时运行良好,但连续使用一天左右后,我开始在日志中看到 R14 错误。一旦内存错误开始,即使应用程序闲置几个小时,它们也永远不会消失。

垃圾收集器是否应该在一段时间后清理未使用的对象并减少内存负载? Heroku 上似乎没有发生这种情况。一般来说,尽管结果是分页的,但在运行一些包含数千行数据的报告后,内存使用量开始逐渐增加。

我怎样才能找到内存泄漏?像 bleak_house 这样的插件已经过时了,或者在 Heroku 环境中不能很好地运行。我可以调整 GC 设置以使其更具攻击性吗?


GC 应该进行清理工作,并且可能会这样做。

你可以强制GCGC.start;如果没有收集许多对象,这将是,但我怀疑这不是问题。

您是否有可能通过保留缓存副本或其他方式创建一堆对象并且从不释放它们?

我不熟悉现有的工具来检查这一点,但您可能想使用以下命令检查存在哪些对象ObjectSpace。例如:

ObjectSpace.each_object.with_object(Hash.new(0)){|obj, h| h[obj.class] +=1 }
# => a Hash with the number of objects by class

例如,如果您在其中一门课程中收到意外的电话号码,您就会更好地知道该去哪里寻找。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何发现 Heroku 上的内存泄漏? 的相关文章

随机推荐

  • 瑞典语字符和 UTF-8

    我在所有页面上都使用 UTF 8 但一些瑞典语字符 和 变得混乱 只是一个带有一些字母的方框 我的数据库设置为 utf8 general ci 但我什至没有连接 所以这并不重要 或者我应该使用另一个字符集 这不是瑞典语网站 都是英文的 但我
  • 如何在 Linux 中创建别名? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 假设我想为 srm 创建一个别名 安全删除 这样每次使用 srm 时 都会运行交互式 rm 命令 例如rm i 需要对必要的配置文件进行此
  • 如果标签有重音,NSXMLParser 不会获取所有标签

    我有一个对数据库进行不同更改的网络服务 当我使用带有 sql 标签的 Web 服务返回行时 如下所示
  • Push 替换数组中的旧值

    也许是因为我工作了一整天 我看不到问题所在 但在下面的代码中 警报仅显示最后添加的值 并且不会将值推送到数组中 window sortControl sortControlPanel div sortControl simpleSortCr
  • 为什么 DbSet.Add 工作这么慢?

    8 个月前曾在这里讨论过同样的话题 如何加快 DbSet Add 的速度 https stackoverflow com questions 4355474 how do i speed up dbset add 除了使用 SqlBulkC
  • JavaFX 字体渲染中的错误字符间距(字距调整)(在 Linux 中)

    我已经开始在 JavaFX 中开发一个应用程序 并且遇到了一个问题 我可以找到很少的有用信息 Linux 中字符之间的间距非常不均匀 我不是在谈论不同字符的宽度 而是在谈论字符之间的空格 它在普通文本中可见 但以下示例比普通文本更好地说明了
  • 如果满足多个条件,则具有重置选项的累积和

    如果满足多个条件 我正在尝试使用重置选项进行累积总和 更具体地说 我想对变量进行累积求和amount and count分组依据id如果满足这两个条件 则重新从 0 开始重置 amount gt 10 且count gt 3 我还想创建一个
  • Android-Facebook SDK:无法共享照片,对话框不显示

    这是我第一次使用Android Facebook SDK 我正在尝试发布位图 但我不断收到此消息 Warning Error com facebook FacebookException Failed to copy image 我可以发布
  • ruby base64 通过以 2 位字符开头来编码 128 位数字,以防止末尾填充

    这个问题是我之前问题的后续 如何在 Ruby 中使用自定义字符集将 UUID 转换为字符串 https stackoverflow com questions 47803212 how can i convert a uuid to a s
  • 无法从 Xcode 6.1 中的情节提要连接自定义协议委托

    我刚刚将我的 mac 升级到 10 10 将 Xcode 升级到 6 1 发现一个关于故事板的奇怪的事情 我的案例使用的是 swift 项目 无法再从故事板连接自定义协议委托 旧版本 Xcode 附带的旧连接很好 但我无法再连接任何新委托
  • Keras:TimeDistributed + InceptionV3 错误

    当我尝试在 TimeDistributed 包装器中使用 Inception 时 我在 Keras 中遇到了一个非常奇怪的错误 这段代码很简单 应该适用于许多模型或层 但奇怪的是 inception v3在预测时失败 import nump
  • 检查单实例java程序[重复]

    这个问题在这里已经有答案了 我有一个 Java 程序 带有 swing gui 我希望只存在 1 个实例 如果它尝试打开程序的另一个实例 我希望将当前实例带到前台 我该怎么做呢 提前致谢 使用启动应用程序Java网络启动 https sta
  • NV21 格式和奇数图像尺寸

    我在 Android 中使用 NV21 图像已经有一段时间了 我一直在跟踪可能由 NV21 图像中不正确的索引字节引起的错误 答案中的图片这个问题 https stackoverflow com questions 5272388 extr
  • 根据buildType更改android项目中的.properties文件和settings.gradle文件

    我有一个 android gradle 项目 其中有两种构建类型 QA 和 prod 我想根据构建类型更改 properties 文件中的属性 我还想根据 buildType 更改 settings gradle 文件中的值之一 我是 an
  • 使用Karate REST API工具上传文件

    我正在尝试使用空手道在特定的松弛通道上上传图像 但没有运气 我尝试了多次不同的步骤 但仍然有 200 响应 并且图像未显示在通道中 尝试发布文字内容并成功在频道上找到文字 以下是我根据空手道文档尝试过的两个 post Feature Pos
  • 如何创建如下所示的交叉表报表?

    是否可以使用 Crystal Report 交叉表创建以下报表 这是报告 Growth Rate Last Year First Year Total each Area 这是我的结果集 Year Area PeopleCount 2005
  • 调整图像大小以适合 div + 保持比例 + 水平和垂直居中 + 圆角

    问题 调整图像大小以适合 div 已解决 保持比例已解决 水平和垂直居中 已解决 圆角 a 矩形图像 已解决 b 横幅图像 不可能的 所以问题是 如何去掉图像的矩形角 请看这里看看问题所在 gt gt gt http jsfiddle ne
  • 安装WDK VC++后损坏

    从以下位置安装 WDK https learn microsoft com en us windows hardware drivers download the wdk https learn microsoft com en us wi
  • 按给定位置将字符串分成两部分

    string Some string pos 5 begging Some s end tring 按给定位置将字符串分成两部分的最佳方法是什么 您可以使用substr http php net substr获取两个子字符串 str1 su
  • 如何发现 Heroku 上的内存泄漏?

    我有一个在 Heroku Cedar 上使用 Ruby 1 9 3 运行的 Rails 3 2 8 应用程序 该应用程序启动时运行良好 但连续使用一天左右后 我开始在日志中看到 R14 错误 一旦内存错误开始 即使应用程序闲置几个小时 它们