Java 8

HotSpot JVM options cheatsheet All concrete numbers in JVM options in this card are for illustrational purposes only!

Alexey Ragozin – http://blog.ragozin.info

JVM Flags

Parallel Mark Sweep Compact (ParOldGen)

Parallel (ParNew)

Serial Mark Sweep Compact

Serial (DefNew)

Concurrent Mark Sweep

-XX:-UseParNewGC1 -XX:+UseConcMarkSweepGC

Concurrent Mark Sweep

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC

-XX:+UseParallelOldGC -XX:+UseParNewGC

-XX:+UseG1GC

Garbage First (G1) 1 - Notice minus before UseParNewGC, which is explicitly disables parallel mode

GC log detail options -verbose:gc or -XX:+PrintGC -XX:+PrintGCDetails

GC Log rotation Print basic GC info

Print more details GC info

-XX:+PrintGCTimeStamps Print timestamps for each GC

event (seconds count from start of JVM)

-XX:+PrintGCDateStamps

Print date stamps at garbage collection events: 2011-09-08T14:20:29.557+0400: [GC...

-XX:+PrintReferenceGC

Print times for special (weak, JNI, etc) reference processing during STW pause

-XX:+PrintJNIGCStalls

Reports if GC is waiting for native code to unpin object in memory

-XX:+PrintGCCause

Add cause of GC in log

-XX:+PrintAdaptiveSizePolicy

Print young space sizing decisions -XX:+PrintPromotionFailure

Print additional information for promotion failure -XX:+PrintGCApplicationStoppedTime

Print summary after each JVM safepoint (including non-GC) -XX:+PrintGCApplicationConcurrentTime

Print time for each concurrent phase of GC

Enable GC log rotation

-Xms256m or -XX:InitialHeapSize=256m

Initial size of JVM heap (young + old) -Xmx2g or -XX:MaxHeapSize=2g

Size threshold for GC log file

-XX:GCLogFileSize=512m

Number GC log files More logging options -XX:+PrintTenuringDistribution Print detailed demography of young space after each collection -XX:NumberOfGCLogFiles=5

-XX:+PrintTLAB

Print TLAB allocation statistics

-XX:+PrintPLAB

Print survivor PLAB details

-XX:+PrintOldPLAB

-Xms/-Xmx

Memory sizing options

-Xloggc: Redirects GC output to a file instead of console -XX:+UseGCLogFileRotation

Young Gen

Non-Heap

Print old space PLAB details

-XX:+PrintGCTaskTimeStamps

Print timestamps for individual GC worker thread tasks (very verbose)

-XX:+PrintHeapAtGC

Thread Stacks Metaspace Compressed Class Space Code Cache NIO Direct Buffers Other JVM Memmory

Parallel scavenge (PSYoungGen)

-XX:+UseParallelGC

Survivor 1

Serial Mark Sweep Compact (PSOldGen)

Survivor 0

Parallel scavenge (PSYoungGen)

Java Heap

Eden

Serial Mark Sweep Compact

Parallel (ParNew)

JVM Memory

-XX:+UseSerialGC

Serial (DefNew)

Old Gen

Old collectior

Non-JVM Memory (native libraries)

Java Process Memory

Available combinations of garbage collection algorithms in HotSpot JVM Young collector

Print heap details on GC

-XX:+PrintHeapAtSIGBREAK Print heap details on signal -XX:+PrintClassHistogramAfterFullGC

Prints class histogram after full GC -XX:+PrintClassHistogramBeforeFullGC

Prints class histogram before full GC

-XX:NewSize=64m -XX:MaxNewSize=64m

Max size of JVM heap (young + old) Absolute (initial and max) size of young space (Eden + 2 Survivours)

-XX:NewRatio=3 Alternative way to specify size of young space. Sets ratio of young vs old space (e.g. -XX:NewRatio=2 means that young space will be 2 time smaller than old space, i.e. 1/3 of heap size). -XX:SurvivorRatio=15

Sets size of single survivor space relative to Eden space size (e.g. -XX:NewSize=64m -XX:SurvivorRatio=6 means that each Survivor space will be 8m and Eden will be 48m).

Initial and max size of JVM’s metaspace space Thread stack size

-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g

-Xss256k (size in bytes) or -XX:ThreadStackSize=256 (size in Kbytes) -XX:CompressedClassSpaceSize=1g Memory reserved

for compressed class space (64bit only)

-XX:InitialCodeCacheSize=256m Initial size and max -XX:ReservedCodeCacheSize=512m size of code cache area -XX:MaxDirectMemorySize=2g

Maximum amount of memory available for NIO off-heap byte buffers

- Highly recommended option

- Highly recommended option

Young space tenuring -XX:InitialTenuringThreshold=8

Initial value for tenuring threshold (number of collections before object will be promoted to old space) -XX:MaxTenuringThreshold=15

Max value for tenuring threshold Max object size allowed to be allocated in young space (large objects will be allocated directly in old space). Thread local allocation bypasses this check, so if TLAB is large enough object exciding size threshold still may be allocated in young space.

-XX:PretenureSizeThreshold=2m

-XX:+AlwaysTenure

Promote all objects surviving young collection immediately to tenured space (equivalent of -XX:MaxTenuringThreshold=0)

-XX:+NeverTenure

Objects from young space will never get promoted to tenured space unless survivor space is not enough to keep them Thread local allocation

-XX:+UseTLAB

Use thread local allocation blocks in eden -XX:+ResizeTLAB Let JVM resize TLABs per thread -XX:TLABSize=1m Initial size of thread’s TLAB -XX:MinTLABSize=64k Min size of TLAB Parallel processing -XX:ConcGCThreads=2

Number of parallel threads used for concurrent phase. -XX:ParallelGCThreads=16

Number of parallel threads used for stop-the-world phases. Enable parallel processing of references during GC pause

-XX:+ParallelRefProcEnabled

-XX:+DisableExplicitGC

JVM will ignore application calls to System.gc() -XX:+ExplicitGCInvokesConcurrent Let System.gc() trigger concurrent collection instead of full GC -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses Same as above but also triggers permanent space collection. -XX:SoftRefLRUPolicyMSPerMB=1000 Factor for calculating soft reference TTL based on free heap size Command to be executed in case of out of memory. E.g. “kill -9 %p” on Unix or “taskkill /F /PID %p” on Windows.

-XX:OnOutOfMemoryError=…

Concurrent Mark Sweep (CMS)

Garbage First (G1)

CMS initiating options -XX:+UseCMSInitiatingOccupancyOnly

Only use predefined occupancy as only criterion for starting a CMS collection (disable adaptive behaviour) -XX:CMSInitiatingOccupancyFraction=70

Percentage CMS generation occupancy to start a CMS cycle. A negative value means that CMSTriggerRatio is used. -XX:CMSBootstrapOccupancy=50

Percentage CMS generation occupancy at which to initiate CMS collection for bootstrapping collection stats. -XX:CMSTriggerRatio=70

Percentage of MinHeapFreeRatio in CMS generation that is allocated before a CMS collection cycle commences. -XX:CMSTriggerInterval=60000 Periodically triggers_ CMS collection. Useful for deterministic object finalization. CMS Stop-the-World pauses tuning -XX:CMSWaitDuration=30000

Once CMS collection is triggered, it will wait for next young collection to perform initial mark right after. This parameter specifies how long CMS can wait for young collection -XX:+CMSScavengeBeforeRemark

Force young collection before remark phase -XX:+CMSScheduleRemarkEdenSizeThreshold If Eden used is below this value, don't try to schedule remark -XX:CMSScheduleRemarkEdenPenetration=20 Eden occupancy % at which to try and schedule remark pause -XX:CMSScheduleRemarkSamplingRatio=4

Start sampling Eden top at least before young generation occupancy reaches 1/ of the size at which we plan to schedule remark CMS Concurrency options -XX:+CMSParallelInitialMarkEnabled

Whether parallel initial mark is enabled (enabled by default) -XX:+CMSParallelRemarkEnabled

Whether parallel remark is enabled (enabled by default) -XX:+CMSParallelSurvivorRemarkEnabled

Whether parallel remark of survivor space enabled, effective only with option above (enabled by default)

-XX:G1HeapRegionSize=32m Size of heap region -XX:G1ReservePercent=10 Percentage of heap to keep free.

Reserved memory is used as last resort to avoid promotion failure.

-XX:InitiatingHeapOccupancyPercent=45

Percentage of (entire) heap occupancy to trigger concurrent GC -XX:G1MixedGCCountTarget=8 Target number of mixed

collections after a marking cycle

-XX:G1HeapWastePercent=10

If garbage level is below threshold, G1 will not attempt to reclaim memory further

-XX:G1ConfidencePercent=50

Confidence level for MMU/pause prediction

-XX:MaxGCPauseMillis=500

Target GC pause duration. G1 is not deterministic, so no guaranties for GC pause to satisfy this limit. CMS Diagnostic options

-XX:PrintCMSStatistics=1

Print additional CMS statistics. Very verbose if n=2. -XX:+PrintCMSInitiationStatistics

Print CMS initiation details -XX:+CMSDumpAtPromotionFailure

Dump useful information about the state of the CMS old generation upon a promotion failure -XX:+CMSPrintChunksInDump (with optin above) Add more detailed information about the free chunks -XX:+CMSPrintObjectsInDump (with optin above) Add more detailed information about the allocated objects Misc CMS options -XX:+CMSClassUnloadingEnabled

If not enabled, CMS will not clean permanent space. You may need to enable it for containers such as JEE or OSGi. -XX:+CMSIncrementalMode Enable incremental CMS mode. Incremental mode was meant for severs with small number of CPU, but may be used on multicore servers to benefit from more conservative initiation strategy. -XX:+CMSOldPLABMin=16 -XX:+CMSOldPLABMax=1024

Min and max size of CMS gen PLAB caches per worker per block size

-XX:+CMSConcurrentMTEnabled

Use multiple threads for concurrent phases.

- Options for “deterministic” CMS, they disable some heuristics and require careful validation

HotSpot JVM options cheatsheet - GitHub

G1 is not deterministic, so no guaranties for GC pause to satisfy this limit. -XX:G1ReservePercent=10 Percentage of heap to keep free. Reserved memory is used ...

558KB Sizes 11 Downloads 257 Views

Recommend Documents

F# Cheatsheet - GitHub
Mutually recursive functions (those functions which call each other) are indicated by ... The same list [ 1; 3; 5; 7; 9 ] or array [| 1; 3; 5; 7; 9. |] can be generated in ...

Paredit Cheatsheet - GitHub
Go to the start of current/previous defun, go to the start of next defun. Leader

Value category cheatsheet - GitHub
Any function call returning a non-reference value type, including pointers, yields a prvalue. ... A non-static data member of an lvalue is also an lvalue. int &&a{ 77 }; ...

the accessibility cheatsheet - GitHub
Jun 2, 2015 - 2 - “Operable” - User interface components and navigation must be ... Lay out your HTML the way the page is inteaded to be read and, where ...

DevOps for the JVM @tbatchelli aka @disclojure Clojure ... - GitHub
Configure clustered services. • Deploy software. • Manage software/servers/services. 2. Saturday, March 17, 12 ... works with every cloud (via jclouds) and more.

JVM Architecture.pdf
Page 3 of 15. public class Main{. public static void main(String[] args). {. Student s; //local variable - reference. s = new Student(23,"Jonh");. int noStudents = 1; //local variable. } } Page 3 of 15 ...

Python Debugger Cheatsheet
Author: Florian Preinstorfer ([email protected]) — version 1.1 — license cc-by-nc-sa 3.0. See https://github.com/nblock/pdb-cheatsheet for more information.

markdown-cheatsheet-online.pdf
would otherwise have special meaning in Markdown's formaing syntax. Markdown provides backslash escapes for. the following characters: \ backslash. ` backtick. * asterisk. _ underscore. {} curly braces. [] square brackets. () parentheses. # hash mark

markdown-cheatsheet-online.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Main menu.

connectify hotspot for android.pdf
connectify hotspot for android.pdf. connectify hotspot for android.pdf. Open. Extract. Open with. Sign In. Main menu. Displaying connectify hotspot for android.pdf.

Masters cheatsheet - top 80.pdf
Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Masters cheatsheet - top 80.pdf. Masters cheatsheet - top 80.pdf.

Wifi Hotspot Lending Policy.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Wifi Hotspot ...

+970#Free Download; 'Hotspot Enterprise with ... - PDFKUL.COM
(1 Year Renewable) online cheap, and we also make it easy to find and browse through details about "what is Hotspot Enterprise with Premium. Support and ... Windows 2000::Windows 7::Windows 8::Windows Vista::Windows XP::Windows Server 2003::Windows S

Diablo-3-cheatsheet-62-63.pdf
Doom Hammer. Dread Lance. Exorcist. Guru Staff. Heaven Hand. Hellion Crossbow. High Scabbard. Razorspikes. Revenant Bow. Rune Sword. Sacred Shield.

Zing:® The best JVM for the enterprise - Media16
Zing is the best JVM choice for all ... processing and analytics, driving new revenue and supporting new business .... Large-scale online and social gaming.

Tablet with Hotspot Instructions.pdf
Page 1 of 3. Tablet​ ​Setup​ ​Guide. ○ By default, your Tablets should automatically connect to the hotspot when powered on. If not, please. follow the steps below. 1. Swipe DOWN from the top of the screen to. display the Notification Area.

connectify hotspot for android.pdf
Download. Connect more apps... Try one of the apps below to open or edit this item. connectify hotspot for android.pdf. connectify hotspot for android.pdf. Open.

'Hotspot Enterprise with Premium Support and ...
Antamedia HotSpot software helps you in controlling and billing your customers for the Internet usage. It is suitable ... Analytical Instrument Repair & Calibration.

man-113\verizon-jetpacktm-4g-lte-mobile-hotspot-mifin ...
man-113\verizon-jetpacktm-4g-lte-mobile-hotspot-mifin-4510l-manual.pdf. man-113\verizon-jetpacktm-4g-lte-mobile-hotspot-mifin-4510l-manual.pdf. Open.

Zing:® The best JVM for the enterprise - Media16
Web-based eCommerce applications, insurance portals, multi-user gaming platforms, Big Data, and other use cases ... has been optimized for today's servers, configuration and setup are typically reduced to just a ... Cloud-based solutions.

'Special Bundle - Antamedia HotSpot - Standard Edition ...
Control time and bandwidth usage of wired and wireless laptops without any client ... UpdateStar has been tested to meet all of the technical requirements to be ...