java -XX:+PrintFlagsFinal -version | findstr HeapSize , find out actual Xmx default in bytes - https://www.edureka.co/community/5621/default-parameters-of-xms-and-xmx-in-jvm -XX:+PerfDisableSharedMem , prevent locking by sharedmem in linux - http://www.evanjones.ca/jvm-mmap-pause.html How linkedin turn the GC - http://engineering.linkedin.com/garbage-collection/garbage-collection-optimization-high-throughput-and-low-latency-java-applications Using generational & concurrent GC collector - http://www.javacodegeeks.com/2012/04/ibm-jvm-tuning-gencon-gc-policy.html Full VM option list : http://blogs.sun.com/roller/resources/watt/jvm-options-list.html, update for Java7 - http://nerds-central.blogspot.com/2011/07/all-jvm-7-xx-options.html http://stas-blogspot.blogspot.com/2011/07/most-complete-list-of-xx-options-for.html A simplified list for some frequency use options - http://rdafbn.blogspot.com.au/2013/11/garbage-collector-guidelines-and-tips.html HotSpot JVM garbage collection options cheat sheet - http://aragozin.blogspot.com/2011/07/hotspot-jvm-garbage-collection-options.html http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html An example and story about effect of difference VM parameter affecting the performance - http://www.javaspecialists.eu/archive/Issue191.html Clear the code cache automatically with -XX:+UseCodeCacheFlushing - http://blogs.amd.com/developer/2010/04/12/better-uptime-for-long-running-java-applications/ Discussion about -XX:MinHeapFreeRatio parameter - http://www.gossamer-threads.com/lists/lucene/java-user/44286#44286 The other detailed guide for VM parameters tuning - http://java.sun.com/j2se/1.5/pdf/jdk50_ts_guide.pdf Here is a more simple cookbook - http://java.sun.com/performance/reference/whitepapers/tuning.html A outdated (1.4) , compehensive but still not really too detailed, overview of various GC tuning - http://www.petefreitag.com/articles/gctuning/ Some say following VM parameter is good enough -server -Xmx -XX:+UseParallelGC http://blogs.sun.com/roller/page/binublog?entry=java_tuning_for_xml Some say is useful if you have huge memory -XX:+UseLargePages http://blogs.sun.com/roller/page/dagastine?entry=java_se_tuning_tip_large Some say below parameter keep GC in low pause -XX:MaxGCPauseMillis=5000 Some say below parameter are very optimal -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:NewSize=1200m -XX:SurvivorRatio=16 http://www.theserverside.com/news/thread.tss?thread_id=41258&ASRC=EM_NNL_347804 Some say those parameter is good -XX:+UseConcMarkSweepGC -XX:ParallelCMSThreads=1 -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 http://blog.mikiobraun.de/2010/08/cassandra-gc-tuning.html Just in case anyone is curious, the flags enabled by -XX:+AggressiveOpts in JDK 1.6.0_25 are: -XX:+EliminateAutoBox -XX:AutoBoxCacheMax=20000 -XX:BiasedLockingStartupDelay=500 -XX:+DoEscapeAnalysis -XX:+OptimizeStringConcat -XX:+OptimizeFill Generate dump with OOME - -XX:+HeapDumpOnOutOfMemoryError GC log sample of -XX:+UseConcMarkSweepGC -XX:PrintFLSStatistics=1 -XX:+PrintGCDetails - https://gist.github.com/1329783 A case study of tuning VM GC parameters - http://plumbr.eu/blog/should-you-trust-the-default-settings-in-jvm Explanation for few performance related VM parameters - http://www.techpaste.com/2012/02/java-command-line-options-jvm-performance-improvement/ Show the exact vm flag that java using - http://matthewkwilliams.com/index.php/2015/10/02/looking-inside-a-jvm-xxprintflagsfinal/ For G1GC - https://dzone.com/articles/g1gcgarbage-first-garbage-collector-tuning-flags-1 https://ionutbalosin.com/2020/01/hotspot-jvm-performance-tuning-guidelines