gpt4 book ai didi

ruby-on-rails - Heroku worker dyno 给出 R14 错误 - 内存管理问题 - rmagick 内存限制选项

转载 作者:行者123 更新时间:2023-12-04 06:20:59 27 4
gpt4 key购买 nike

我尝试使用 2X 工作器 dyno,等待不会出现 R14 错误,但结果如下:

2013-06-04T13:03:30.723260+00:00 heroku[worker.1]: Process running mem=1047M(102.3%)
2013-06-04T13:03:30.723260+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)

但是,worker 的任务已成功完成。

问题:
  • 如何减少工作所需的内存? - 我正在使用 rmagick gem 将图像列表转换为单个多页 pdf。
  • 在最终作业成功完成时保持这样的过程(带有 R14 错误)有多危险?

  • 提前致谢

    最佳答案

    我终于找到了解决方案。问题出在 rmagick 上。它获得它看到的所有可用内存。如果您使用 2X 工作器 dyno 而不是 1X 则无关紧要。它增长到最大可用资源。所以,we have to set a limit .但就我而言,并非所有限制都有效。

    您可以通过这种方式直接进行系统调用:
    convert -limit memory 0 -limit map 0 list_of_input_files output_file
    这样,您可以避免使用内存缓存,直接进入磁盘缓存。 这是我发现在 heroku 中避免 R14 错误的唯一方法.与其他组合,如 -limit memory 32 -limit map 64或类似的,它总是给我错误。我接受了这个想法 from here .

    当然,您始终可以使用 rmagick library使用这条线,但是它对我不起作用,我确实使用了之前解释的系统调用方法:

    Magick.limit_resource(:memory, 0)
    Magick.limit_resource(:map, 0)

    更新:我使用了 nice命令以确保更多优先级。看起来它有所改善,但最终我收到了 R14 错误,但确实它们并不常见(即使使用相同的文件!)。

    关于ruby-on-rails - Heroku worker dyno 给出 R14 错误 - 内存管理问题 - rmagick 内存限制选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918845/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com