树脂内存问题



我使用jvm参数启动了resin 3.0.28:

    -Xms6300M -Xmx6300M -Xss128k -XX:ThreadStackSize=256 -XX:MaxPermSize=128M 
-XX:PermSize=128M -verbose:gc -XX:+PrintGCDetails -XX:+UseParallelGC 
-XX:+PrintGCTimeStamps

但是内存已超过10GB

树脂怎么了?我使用jmap -heap,输出如下:显示JVM堆内存处于正常状态。

<>之前附上进程ID 9456,请稍等…成功连接调试器。检测到服务器编译器。JVM版本为10.0-b22使用线程本地对象分配。并行GC(16个线程)堆配置:MinHeapFreeRatio = 40MaxHeapFreeRatio = 70MaxHeapSize = 6606028800 (6300.0MB)NewSize = 2686976 (2.5625MB)MaxNewSize = -65536 (-0.0625MB)OldSize = 5439488 (5.1875MB)NewRatio = 2SurvivorRatio = 8PermSize = 134217728 (128.0MB)MaxPermSize = 134217728 (128.0MB)堆使用情况:PS年轻一代伊甸园空间:容量= 2155151360 (2055.3125MB)used = 1966086568 (1875.0062637329102MB)free = 189064792 (180.30623626708984MB)91.22730795112228%使用从空间:容量= 23265280 (22.1875MB)used = 13849352 (13.207771301269531MB)free = 9415928 (8.979728698730469MB)59.527983329665496%使用空间:容量= 23068672 (22.0MB)used = 0 (0.0MB)free = 23068672 (22.0MB)0.0%使用PS老一代容量= 4404019200 (4200.0MB)used = 3854164456 (3675.6176528930664MB)free = 549854744 (524.3823471069336MB)87.51470602126349%使用PS烫发容量= 134217728 (128.0MB)used = 53393152 (50.919677734375MB)free = 80824576 (77.080322265625MB)39.78099822998047%使用

我的"记忆保留"到底是什么意思?我假定您指的是进程本身分配的内存:

堆不会使用超过您指定的(除了一些碎片,但这是次要的)。进程中的"其他对象"使用这个空间,尽管resin或JVM可能有问题,特别是如果内存在几周内稳步增加,但是resin和hvm使用的内存量也可能是正常的。

看看我对另一个类似问题的回答:

JVM内存消耗heapsize的两倍

简而言之:确保您查看的是正确的进程大小。我通常在32位Debian系统上为resin使用1-1.5 GB的非java堆空间(这当然使您的4gb听起来很多)。

此外:
-Xss128k -XX:ThreadStackSize=256

将被解释为

-XX:ThreadStackSize=128,

所以你可能想要删除其中一个…(参见http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-June/004272.html)

最新更新