FAQ
May be double the heap using -d64 -Xms5g -Xmx5g (assuming your
machine has enough RAM so you are not swapping), and
see what happens.

If that size of heap usage seems excessive, try and use
a heap profiling tool to see why your application is
holding on to so much.

all the best.
-- ramki
On 04/14/11 07:17, Rafael Angarita wrote:
Thank you very much!

I took your advise about the JVM GC parameters and removed some of them.

I used -Xmx2500m. My application gets further with the proccesing it
needs to do, but the whole computer gets really slow and my application
crash anyway.

I'm trying to get the developers of the framework I'm using for my DSL.

If any of you guys have more ideas, I'm here to listen and learn.

Thank you very much.

On 13 April 2011 14:58, Y. S. Ramakrishna <y.s.ramakrishna at oracle.com
wrote:

Hi Rafael --

Looks like you need more heap: size your -Xmx bigger to
accommodate all of the objects that your Eclipse project creates.
Here's the state of the old gen in the penultimate display:-


[Full GC [CMS[CMS-concurrent-mark: 8.811/9.001 secs] [Times:
user.95 sys=0.02, real=9.00 secs] (concurrent mode
failure): 2008891K->2014802K(2015232K), 24.2053380 secs]
2038395K->2014802K(2044736K), [CMS Perm :
50779K->50779K(86244K)] icms_dc0 , 24.2054320 secs]
[Times: user$.16 sys=0.03, real$.20 secs] [GC [1
CMS-initial-mark: 2014802K(2015232K)] 2015335K(2044736K),
0.0023250 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]


The last line shows that the old gen has:-
2015232 - 2014802 = 430 KB
of free space. Perhaps you were trying to allocate an object bigger
than that.
I'd suggest running with a larger heap (possibly using a 64-bit JVM if
you need more Java heap).

However, the end of your message does not show the heap to be too full.
Perhaps Eclipse catches the OOM, and drops all of the objects before
it exits,
so you see the heap as not full in the final display:-
(Eclipse experts on the list might want to weigh in.)


This is the end of the output:

Heap
par new generation total 29504K, used 23591K [0x2e8b0000,
0x308b0000, 0x308b0000)
eden space 26240K, 77% used [0x2e8b0000, 0x2fc89f20,
0x30250000)
from space 3264K, 100% used [0x30580000, 0x308b0000,
0x308b0000)
to space 3264K, 0% used [0x30250000, 0x30250000,
0x30580000)
concurrent mark-sweep generation total 2015232K, used
61766K [0x308b0000, 0xab8b0000, 0xab8b0000)
concurrent-mark-sweep perm gen total 87828K, used 52696K
[0xab8b0000, 0xb0e75000, 0xb38b0000)



Asides:-
Never, never use values for MaxTenuringThreshold exceeding 15, unless
you are sure you want that kind of behaviour. I'd suggest
just leave that option out unless you know how to tune for it (there's
lots of experience on this alias with tuning that though, should
you need to tune that for performance in the future).

More asides (specific to CMS):-
Depending on what your platform is, if it has anything more than 2
cores,
i'd advise dropping the -XX:+CMSIncrementalMode option. (You'd then
want to drop other options starting with "CMSIncremental".
CMS does not unload classes by default. With Eclipse etc. you would
want to unload classes concurrently so as not to get OOM's:
use -XX:+CMSClassUnloadingEnabled (and if on older JVM's
-XX:+CMSPermGenSweepingEnabled).

Bottom line: looks like you need more Java heap.
-- ramki


On 04/13/11 10:25, Rafael Angarita wrote:

Hello everybody,

I'm building a code generation application as an Eclipse and one
of my test projects contains around 15000 source files. My
application started having memory problems, so after doing some
optimizations especific to the framework I'm using to develope
my DSL, I started learning about GC, but I think I'm still lost.

I have tried with different JVM options for the GC with no
success. Currently, I'm trying:

-Xms2000m -Xmx2000m -verbosegc -XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing
-XX:CMSInitiatingOccupancyFraction=5
-XX:MaxTenuringThreshold00 -XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSIncrementalDutyCycleMin=1

but this is just one of the several things I have tried.

At first everything seems to go fine, but after awhile I get
"promotion failed" and everything gets really slow, and finally
the application crash with java.lang.OutOfMemoryError: Java heap
space.


CMS-concurrent-abortable-preclean: 0.070/0.587 secs] [Times:
user=0.66 sys=0.02, real=0.58 secs] [GC[YG occupancy: 28574 K
(29504 K)][Rescan (parallel) , 0.0198420 secs][weak refs
processing, 0.0015200 secs] [1 CMS-remark: 1961760K(2015232K)]
1990335K(2044736K), 0.0215890 secs] [Times: user=0.03 sys=0.00,
real=0.03 secs] [GC [ParNew: 29096K->2087K(29504K), 0.0270900
secs] 1990735K->1965523K(2044736K) icms_dc0 , 0.0271650 secs]
[Times: user=0.05 sys=0.00, real=0.03 secs] [GC [ParNew:
28327K->3264K(29504K), 0.0430410 secs]
1990448K->1969326K(2044736K) icms_dc0 , 0.0431180 secs]
[Times: user=0.07 sys=0.01, real=0.04 secs] [GC [ParNew:
29504K->3264K(29504K), 0.0658260 secs]
1995091K->1975795K(2044736K) icms_dc0 , 0.0659090 secs]
[Times: user=0.11 sys=0.00, real=0.07 secs] [GC [ParNew:
29504K->3264K(29504K), 0.0630250 secs]
2001944K->1982760K(2044736K) icms_dc0 , 0.0631060 secs]
[Times: user=0.11 sys=0.00, real=0.06 secs] [GC [ParNew:
29504K->3263K(29504K), 0.0435130 secs]
2008711K->1985752K(2044736K) icms_dc0 , 0.0436310 secs]
[Times: user=0.07 sys=0.00, real=0.04 secs]
[CMS-concurrent-sweep: 1.813/2.058 secs] [Times: user=3.76
sys=0.02, real=2.05 secs] [CMS-concurrent-reset: 0.035/0.035
secs] [Times: user=0.06 sys=0.00, real=0.04 secs] [GC [ParNew
(promotion failed): 29503K->29504K(29504K), 0.5729750
secs][CMS[Unloading class sun.reflect.GeneratedConstructorAccessor6]
[Unloading class sun.reflect.GeneratedConstructorAccessor26]
[Unloading class sun.reflect.GeneratedMethodAccessor9]
[Unloading class sun.reflect.GeneratedConstructorAccessor17]
[Unloading class sun.reflect.GeneratedConstructorAccessor20]
[Unloading class sun.reflect.GeneratedMethodAccessor4]
[Unloading class sun.reflect.GeneratedMethodAccessor8]
[Unloading class sun.reflect.GeneratedConstructorAccessor25]
[Unloading class sun.reflect.GeneratedMethodAccessor18]
[Unloading class sun.reflect.GeneratedMethodAccessor17]
[Unloading class sun.reflect.GeneratedConstructorAccessor27]
[Unloading class sun.reflect.GeneratedConstructorAccessor19]
[Unloading class sun.reflect.GeneratedConstructorAccessor12]
[Unloading class sun.reflect.GeneratedMethodAccessor2]
[Unloading class sun.reflect.GeneratedConstructorAccessor14]
[Unloading class sun.reflect.GeneratedConstructorAccessor28]
[Unloading class sun.reflect.GeneratedConstructorAccessor5]
[Unloading class sun.reflect.GeneratedMethodAccessor16]
[Unloading class sun.reflect.GeneratedMethodAccessor19]
[Unloading class sun.reflect.GeneratedConstructorAccessor9]
[Unloading class sun.reflect.GeneratedConstructorAccessor11]
[Unloading class sun.reflect.GeneratedConstructorAccessor8]
[Unloading class sun.reflect.GeneratedConstructorAccessor29]
[Unloading class sun.reflect.GeneratedMethodAccessor3]
[Unloading class sun.reflect.GeneratedConstructorAccessor24]
[Unloading class sun.reflect.GeneratedConstructorAccessor18]
[Unloading class sun.reflect.GeneratedMethodAccessor15]
[Unloading class sun.reflect.GeneratedConstructorAccessor10]
[Unloading class sun.reflect.GeneratedConstructorAccessor16]
[Unloading class sun.reflect.GeneratedConstructorAccessor15]

[Full GC [CMS[CMS-concurrent-mark: 8.811/9.001 secs] [Times:
user.95 sys=0.02, real=9.00 secs] (concurrent mode failure):
2008891K->2014802K(2015232K), 24.2053380 secs]
2038395K->2014802K(2044736K), [CMS Perm :
50779K->50779K(86244K)] icms_dc0 , 24.2054320 secs] [Times:
user$.16 sys=0.03, real$.20 secs] [GC [1 CMS-initial-mark:
2014802K(2015232K)] 2015335K(2044736K), 0.0023250 secs] [Times:
user=0.00 sys=0.00, real=0.00 secs]
This is the end of the output:

Heap
par new generation total 29504K, used 23591K [0x2e8b0000,
0x308b0000, 0x308b0000)
eden space 26240K, 77% used [0x2e8b0000, 0x2fc89f20, 0x30250000)
from space 3264K, 100% used [0x30580000, 0x308b0000, 0x308b0000)
to space 3264K, 0% used [0x30250000, 0x30250000, 0x30580000)
concurrent mark-sweep generation total 2015232K, used 61766K
[0x308b0000, 0xab8b0000, 0xab8b0000)
concurrent-mark-sweep perm gen total 87828K, used 52696K
[0xab8b0000, 0xb0e75000, 0xb38b0000)


I would appreciate if anybody can give me an advise about this.

Thank you very much for your help.


------------------------------------------------------------------------

_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
<mailto:hotspot-gc-use at openjdk.java.net>
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use





------------------------------------------------------------------------

_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 3 | next ›
Discussion Overview
grouphotspot-gc-dev @
categoriesopenjdk
postedApr 13, '11 at 12:28p
activeApr 14, '11 at 9:03a
posts3
users2
websiteopenjdk.java.net

2 users in discussion

Y. S. Ramakrishna: 2 posts Chi Ho Kwok: 1 post

People

Translate

site design / logo © 2022 Grokbase