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

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

概述我试过使用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 exceed 我试过使用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)

但是,工作人员的任务已成功完成.

问题:

>如何减少工作所需的内存? – 我正在使用rmagick gem将图像列表转换为单个多页pdf.
>当最终工作顺利完成时,保持这样的过程(有R14错误)有多危险?

提前致谢

解决方法 我终于找到了解决方案.问题在于rmagick.它获得了它看到的所有内存.如果你使用2X工作人员dyno而不是1X工作人员dyno并不重要.它增长到最大可用资源.所以,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这行,但它对我不起作用,我确实使用了之前解释过的syscall方法:

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

更新:我使用了nice命令来确保更高的优先级.它似乎有所改善,但最终我得到R14错误,但它确实不常见(即使使用相同的文件!).

总结

以上是内存溢出为你收集整理的ruby-on-rails – Heroku worker dyno给出R14错误 – 内存管理问题 – rmagick内存限制选项全部内容,希望文章能够帮你解决ruby-on-rails – Heroku worker dyno给出R14错误 – 内存管理问题 – rmagick内存限制选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存