tomcat - Java: Is 'tenured' memory the same as permgen? -


i trying gather information on occasional issue having, after few weeks of operation app slows down, works fine, slows down, works fine, intervals between being slow , working fine getting shorter , shorter. theory time goes on garbage collecting more often. other key information have experienced oom permgen issues.

i put enabled verbose:gc, , see gc output in catalina.out. think need add printgcdetails flag, however, based on information here:

http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

enabled latter flag print out information on collection of "tenured" memory. question is, memory causes permgen errors, or different? , if different, how can log information show permgen space?

edit -- cannot attach of jvm monitoring tools in environment, unfortunately.

edit -- added said config options, 1 printing tenuring distribution, stuff like

27.701: [gc 27.701: [parnew desired survivor size 2162688 bytes, new threshold 4 (max 4) - age   1:    1906560 bytes,    1906560 total - age   2:       2064 bytes,    1908624 total - age   3:       5064 bytes,    1913688 total - age   4:     650368 bytes,    2564056 total : 35684k->2678k(38336k), 0.0068580 secs] 224179k->191173k(1065664k), 0.0069700 secs] [times: user=0.01 sys=0.00, real=0.01 secs]  

is parnew generation permgen space?

and

 (concurrent mode failure): 25387k->31940k(1027328k), 0.2983200 secs] 50714k->31940k(1065664k), [cms perm : 35273k->35139k(35392k)], 0.2985210 secs] [times: user=0.30 sys=0.00, real=0.30 secs]   (concurrent mode failure): 25356k->31941k(1027328k), 0.3032690 secs] 50861k->31941k(1065664k), [cms perm : 35264k->35129k(35392k)], 0.3034800 secs] [times: user=0.30 sys=0.00, real=0.31 secs] 

the failures bothering me.

thanx in advance

tenured , permgen not same, no. related, not same thing. exact details depend on implementation in jvm using, but, document linked:

"a third generation closely related tenured generation permanent generation. permanent generation special because holds data needed virtual machine describe objects not have equivalence @ java language level. example objects describing classes , methods stored in permanent generation."

interned strings , class details , such typically stored in perm, whereas long lived java objects tenured.

here decent article explaining permgen (and how tweak it): http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -