garbage collection - jvm won't young GC, s0/s1 won't be used and most instance are strings, how to optimize? -


i have glassfish configured heap space size s0:s1:eden = 2:2:8. , find jvm not young gc

(! 22958)-> jstat -gc 1398 1000 100  s0c    s1c    s0u    s1u      ec       eu        oc         ou       pc     pu    ygc     ygct    fgc    fgct     gct 33792.0 19456.0  0.0    0.0   108544.0 108544.0  349184.0   348941.2  173568.0 173422.5  92634 1210.784 34932 20945.828 22156.612 33792.0 19456.0  0.0    0.0   108544.0 101252.3  349184.0   348941.2  173568.0 173422.5  92634 1210.784 34932 20946.499 22157.282 33792.0 19456.0  0.0    0.0   108544.0 108544.0  349184.0   348941.2  173568.0 173422.5  92634 1210.784 34933 20946.499 22157.282 33792.0 19456.0  0.0    0.0   108544.0 108544.0  349184.0   348941.2  173568.0 173422.5  92634 1210.784 34934 20947.106 22157.890 33792.0 19456.0  0.0    0.0   108544.0 74357.8   349184.0   348941.2  173568.0 173422.5  92634 1210.784 34935 20948.298 22159.082 33792.0 19456.0  0.0    0.0   108544.0 90966.8   349184.0   348941.2  173568.0 173422.5  92634 1210.784 34935 20948.298 22159.082 33792.0 19456.0  0.0    0.0   108544.0 96473.6   349184.0   348941.2  173568.0 173422.5  92634 1210.784 34935 20948.298 22159.082 33792.0 19456.0  0.0    0.0   108544.0 100628.3  349184.0   348941.2  173568.0 173422.5  92634 1210.784 34935 20948.298 22159.082 

i believe why young gc not preformed that: instance keep alive size more s0/s1 size, dumped heap , find instance string or char[] enter image description here

so how can optimize this?

young gc skipped if old space full (which case).

s0/s1 irrelevant.

increase old space , gc behave properly.


Comments