Java 7

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

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

Concurrent Mark Sweep

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseG1GC

Garbage First (G1)

-Xms/-Xmx

1 - Notice minus before UseParNewGC, which is explicitly disables parallel mode

GC log detail options -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

Memory sizing options

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

Enable GC log rotation

-XX:+UseGCLogFileRotation

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

Print old space PLAB details

-XX:+PrintGCTaskTimeStamps

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

-XX:+PrintHeapAtGC

Other JVM Memmory

-XX:-UseParNewGC1 -XX:+UseConcMarkSweepGC

Code Cache

Concurrent Mark Sweep

Young Gen

-XX:+UseParNewGC

NIO Direct Buffers

Serial (DefNew)

-XX:+UseParallelOldGC

Thread Stacks

Serial Mark Sweep Compact

Non-Heap Perm Gen

Parallel Mark Sweep Compact (ParOldGen)

Parallel (ParNew)

Survivor 1

Parallel scavenge (PSYoungGen)

Survivor 0

Serial Mark Sweep Compact (PSOldGen)

-verbose:gc or -XX:+PrintGC

Java Heap

-XX:+UseParallelGC

Parallel scavenge (PSYoungGen)

Parallel (ParNew)

JVM Memory

-XX:+UseSerialGC

Serial Mark Sweep Compact

Eden

Serial (DefNew)

JVM Flags

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

-Xms256m or -XX:InitialHeapSize=256m

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

Max size of JVM heap (young + old) -XX:NewSize=64m -XX:MaxNewSize=64m

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 permanent generation

-XX:PermSize=512m -XX:MaxPermSize=1g

Thread stack size -Xss256k (size in bytes) or -XX:ThreadStackSize=256 (size in Kbytes) -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

Concurrent Mark Sweep (CMS) -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:+AlwaysTenure

-XX:CMSTriggerRatio=70

-XX:+NeverTenure

-XX:CMSInitiatingPermOccupancyFraction=80 -XX:CMSTriggerPermRatio=90

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

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. -XX:+ParallelRefProcEnabled Enable parallel processing of references during GC pause -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=…

Garbage First (G1)

CMS initiating options

Percentage of MinHeapFreeRatio in CMS generation that is allocated before a CMS collection cycle commences. CMS triggers base on perm space occupancy

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 (disabled 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

Java 7 - GitHub

Sep 8, 2011 - Memory sizing options. Alexey Ragozin – http://blog.ragozin.info. Available combinations of garbage collection algorithms in HotSpot JVM.

556KB Sizes 5 Downloads 228 Views

Recommend Documents

Advance-Java-Suresh - GitHub
Page 1. ameerpetmaterials.blogspot.in. For More Tutorials Visit. Page 2. Advance Java. (Suresh Sir). Page 3. Page 4. Page 5. Page 6. Page 7. Page 8. Page 9. Page 10 .... Page 141. Page 142. Page 143. Page 144. Page 145. Page 146. Page 147. Page 148.

7"3V - GitHub
Page 1. (7"3V. ' 2- & a. ~z f. Car-). Page 2. 5*,, > O. $ /£o 0k>fov>«

Java with Generators - GitHub
processes the control flow graph and transforms it into a state machine. This is required because we can then create states function SCOPEMANGLE(node).

FRC Java Programming - GitHub
FRC Java Programming Last Updated: 1/11/2016 ..... NI Update Service .... network. When you have entered the team number and the roboRIO is connected, ...

Brooklyn Community District 7 - GitHub
Commercial. Industrial. Transportation/Utility. Public/Institutional. Open Space. Parking. Vacant. Other. 6,500. 3,683. 75. 1,461. 241. 646. 94. 169. 36. 213. 218. 36. 4 A v. G ... Neighborhoods1: Sunset Park, Windsor Terrace. Top 3 pressing issues i

JJ-7:f( .. f - GitHub
B.E.AIIHXOBCKHH, H.H.CHJIHH. KAHAJI BBO~A-BhiBO~A EC 38M HA B3CM-6. (OBUll1E ITPHHIJJ10hl). JJ-7:f( .. f--(. Pll - 10088 ...

QR Reader Java Project - GitHub
QR Reader Java Project. Date: 4 July ... Open eclipse and click on File -> import -> General -> Existing projects into workspace as shown in fig. 2. ... Similarly fix problem of JRE system library if in ... ProjectFlow.pdf show complete flow of proje

Manhattan Community District 7 - GitHub
Page 1 ... E 79 St. MN. 11. Hudson. R iver. Central. Park. MN 9. MN. 10. MN 8. Manhattan Community District 7. Neighborhoods1: Lincoln Square, Manhattan Valley, Upper West Side. Top 3 pressing issues identified by. Manhattan Community Board 7 in 2017

Bronx Community District 7 - GitHub
2015 NYCgov Poverty Measure by PUMA. This metric from the Mayor's Office for Economic Opportunity accounts for NYC's high cost of housing, as well as other costs of living and anti-poverty benefits. Land Use Category. % Lot. Area. # Lots. Click here

Vowpal Wabbit 7 Tutorial - GitHub
Weight 1 by default. – Label: use {-1,1} for classification, or any real value for regression. 1 | 1:0.43 5:2.1 10:0.1. -1 | I went to school. 10 | race=white sex=male ...

Queens Community District 7 - GitHub
1. Street conditions. 2. Traffic. 3. Other (see Statement of Needs). To learn more, please read Queens CD 7's · Statements of Community District Needs · and Community Board Budget Requests · for Fiscal Year 2018. A Snapshot of Key Community Indicator

Manhattan Community District 7 Basemap - GitHub
Theodore. Roosevelt. Park. Riverside. Park. R ive rsid e. P ark. So uth. M o rn in gsid e. P ark. Central. Park. 12 A. V. WEST 112 ST. EAST 92 ST. 5 A. V. 5 A. V. 5 A. V. EAST 69 ST. 97. ST. TRANSVERSE. WEST 68 ST. WEST DR. WEST 118 ST. WEST 108 ST.

Senior Java Developer - Technical Exercise - GitHub
Stretch goals – to be implemented only if you have time. 3. The program should expose 2 rest endpoints returning: * OK if the application is running. * Version of the application. 4. Please submit your source code along with: •. A README document

7*4 «%> ""T *v - GitHub
7*4 «%> ""T *v . ..I &uf>

Xcode 7 Visual Reference Card - GitHub
Previous Tab. Run. ⌘ R Run. ⌘ U Test. ⌘ I. Profile. ⇧ ⌘ B Analyze. ⌘ . Stop. ⌘ < Edit Scheme. Debug. ⌘ Y Deactivate Breakpoints. ⌃ ⌘ Y Pause. F6 Step Over.

Queens Community District 7 Basemap - GitHub
LEWIS AV. 33 AV. 99 ST. 101 ST. 16 AV. 15 RD. 153 PL. 210ST. X. ST. 172 ST. 144 ST. 29 AV. BYRD ST. 15. RD. 138 ST. 157 ST. 119. ST. 33 AV. 157 ST. 64 AV. 47. RD. 80 DR. PUGSLEY AV. MAPLE AV. 171 ST. 128 ST. 128 ST. 17 RD. 9 AV. 25 DR. 25 DR. 102 ST.

Operator Type Operator Java Flow of Control - GitHub
Operator Type. Operator. Java Flow of Control. Unary ! ++ -- + -. Java Evaluates First. Mul plica ve. * / %. Addi ve. + -. Rela onal. < > = Equality. == !=

Java and Scala's Type Systems Are Unsound [pdf] - GitHub
1. Introduction. In 2004, Java 5 introduced generics, i.e. parametric polymor- phism, to the Java ... 12 years ago, both languages were unsound; the examples we will present were ... Classes and interfaces can be specified to have type pa- rameters a

LECTURE 7: NONLINEAR EQUATIONS and 1-d ... - GitHub
solving nonlinear equations and 1-d optimization here. • f(x)=0 (either in 1-d or many ... dimensions. • Requires a gradient: f(x+δ)=f(x)+δf'(x)+… • We want f(x+δ)=0, hence δ=-f(x)/f'(x). • Rate of convergence is quadratic (NR 9.4) εi+