加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Heroku内存泄漏与Play2 scala

发布时间:2020-12-16 19:09:48 所属栏目:安全 来源:网络整理
导读:做了一些拉伸(ab)测试我的1英雄动力和dev数据库与20连接限制. 在调用期间(该访问数据库与squeryl堆分配正在增加导致R14(内存超过512MB)) 我似乎无法再现这个问题(至少在本地). 有没有办法得到英雄堆转储并分析它得到一些线索? play2,scala,squeryl和heroku
做了一些拉伸(ab)测试我的1英雄动力和dev数据库与20连接限制.

在调用期间(该访问数据库与squeryl堆分配正在增加导致R14(内存超过512MB))

我似乎无法再现这个问题(至少在本地).

有没有办法得到英雄堆转储并分析它得到一些线索?

play2,scala,squeryl和heroku内存泄漏有什么已知问题吗?

更新

如果我在控制器的末尾执行System.gc,一切似乎都很好,而且较慢…我在该调用中创建了很多对象,但是不应该是heroku的JVM照顾gc?另外如果我安排gc调用定期不要释放内存

解决方法

有一个伟大的文章来解决Heroku的内存问题:
https://devcenter.heroku.com/articles/java-memory-issues

在您的情况下,您可以将GC标志添加到JAVA_OPTS以查看内存详细信息.我会建议以下标志:

heroku config:add JAVA_OPTS =“ – Xmx384m -Xss512k -XX:UseCompressedOops -XX:PrintGCDetails -XX:PrintHeapAtGC -XX:PrintGCDateStamps”

还有一个简单的java代理,你可以添加到你的进程,如果你想要一些更多的信息从JMX关于你的内存.如果你想进一步深入,你还可以看看像New Relic这样的监控插件,但是我认为你应该使用标志和java代理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读