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
Post a Comment