我已经为Heroku编写了一个关于Play2框架的应用程序,并且我遇到了内存问题.
2013-03-21T01:28:35+00:00 heroku[web.1]: Process running mem=543M(106.1%)
2013-03-21T01:28:35+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
Run Code Online (Sandbox Code Playgroud)
本地我在Heroku(512MB)上使用相同的JVM设置和内存限制来分析它,但是当我在Heroku发送请求时它几乎立即运行我们的堆空间.
JAVA_OPTS: -Xmx384m -Xss512k -XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)
如果我能分析那里发生了什么,我就不会有任何问题,但java-agent doest似乎对我有用.
我没有遇到任何我见过的内存泄漏.我知道我创造的每一件物品都只会被使用一次,所以我可以让我的年轻一代变大,而我的老一代变小.我已经尝试了不同的JVM值,但似乎无法找到正确的组合,以便在没有正确的分析的情况下使其工作.
我已经阅读了所有关于调优的Heroku文档,但没有用.有没有人对此有任何想法,或者可能指出我正确的方向?
我仍然无法进行远程监控工作,但是在完整的CG之前和之后,我的本地测试系统有一些转储.
{Heap before GC invocations=1747 (full 0):
PSYoungGen total 42496K, used 42496K [0x00000000f5560000, 0x00000000fded0000, 0x0000000100000000)
eden space 42176K, 100% used [0x00000000f5560000,0x00000000f7e90000,0x00000000f7e90000)
from space 320K, 100% used [0x00000000fde80000,0x00000000fded0000,0x00000000fded0000)
to space 640K, 0% used [0x00000000fdd90000,0x00000000fdd90000,0x00000000fde30000)
PSOldGen total 106176K, used 105985K [0x00000000e0000000, 0x00000000e67b0000, 0x00000000f5560000)
object space 106176K, 99% used [0x00000000e0000000,0x00000000e67804c8,0x00000000e67b0000)
PSPermGen total 43712K, used 43684K [0x00000000d5a00000, 0x00000000d84b0000, 0x00000000e0000000)
object space …Run Code Online (Sandbox Code Playgroud)