[ 
https://issues.apache.org/jira/browse/ACCUMULO-599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281136#comment-13281136
 ] 

John Vines commented on ACCUMULO-599:
-------------------------------------

Reading through 
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html 
and some flags which catch my eye-
-XX:MaxGCPauseMillis=n - Sets a target for the maximum GC pause time. This is a 
soft goal, and the JVM will make its best effort to achieve it. - May be 
worthwhile to encourage the GC to limit it's GC rounds to 15-20 seconds top to 
prevent stops?
-XX:+UseLargePages - Use large page memory. (Introduced in 5.0 update 5.) For 
details, see Java Support for Large Memory Pages. - Not sure if this would be 
worthwhile or not. But seems interesting
-XX:+UseTLAB - Uses thread-local object allocation blocks. This improves 
concurrency by reducing contention on the shared heap lock. - May be worthwhile 
with the amount of multithreading we do, at least in the tservers (and possibly 
clients, though we don't typically do object creation within them)
-XX:MaxTenuringThreshold=0 - Makes the full NewSize available to every NewGC 
cycle, and reduces the pause time by not evaluating tenured objects. 
Technically, this setting promotes all live objects to the older generation, 
rather than copying them - This would allow objects to only be handled by the 
concurrent mark and sweet collector. Unfortunately, if our assumption about 
old-stop-the-world GC kicking off if the CMS can't keep up, then this will only 
amplify it's problems.

Part of me says we should try some out, but part of me says we should only fix 
that which we find to be broken. I think if no one has anything to say, we 
should only do the suggested class unloading and perm gen sweeping.


                
> investigate permgen collection and class unloading with concurrent mark and 
> sweep garbage collector
> ---------------------------------------------------------------------------------------------------
>
>                 Key: ACCUMULO-599
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-599
>             Project: Accumulo
>          Issue Type: Bug
>          Components: scripts
>    Affects Versions: 1.3.6, 1.4.0
>            Reporter: Adam Fuchs
>            Assignee: John Vines
>
> The Java concurrent mark and sweep garbage collector appears to default to 
> not unloading classes or sweeping the permgen storage space. Accumulo reloads 
> classes dynamically, potentially contributing a lot to the permgen space. It 
> is important that these classes be garbage collected when we're done with 
> them. Since we use -XX:+UseConcMarkSweepGC by default for all Accumulo 
> processes, should we also use -XX:+CMSClassUnloadingEnabled and 
> -XX:+CMSPermGenSweepingEnabled? Are there other flags or parameters that we 
> should set to really do java garbage collection properly in a long-lived 
> instance?
> These should be set in conf/accumulo-env.sh as part of ACCUMULO_GENERAL_OPTS.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to