Interface | Description |
---|---|
IGCInspector |
Interface for GC activity monitoring
|
IHeapIsTooHigh |
Abstract the information defining when we run out of heap.
|
IPepperGarbageCollectionNotificationInfo |
Wraps the not-specified but much useful information in com.sun.management.GarbageCollectionNotificationInfo
|
IPepperJVMConstants |
Typical JVM arguments
Class memory parameterization
-XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -Xmx3G -Xms3G -XX:MaxDirectMemorySize=7G -XX:MaxPermSize=512M
java -XX:+PrintFlagsFinal -version > flags.log
-XX:+PrintGCApplicationStoppedTime - it prints all STW pauses not only related to GC
-XX:+PrintSafepointStatistics - prints safe points details
-XX:PrintSafepointStatisticsCount=1 - make JVM report every safe point
https://bugs.openjdk.java.net/browse/JDK-6950794
Minimum logs in sysout
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
For -Xloggc, %p.%t are very important else gc logs will be overridden on each restart
-Xloggc:../log/jvm_gc.%p.%t.log -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
-XX:+PrintClassHistogramBeforeFullGC -XX:+PrintClassHistogramAfterFullGC -XX:+PrintGCApplicationStoppedTime
-XX:+PrintSafepointStatistics –XX:PrintSafepointStatisticsCount=1
GC rolling
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 XX:GCLogFileSize=10M
In Prod -XX:-OmitStackTraceInFastThrow will prevent cutting stacks, even if at least the first stack occurrence has
been complete http://stackoverflow.com/questions/2411487/nullpointerexception-in-java-with-no-stacktrace
# CheckIP with: hostname -i
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1088
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=
|
IPepperJVMConstants.IPepperActivePivot |
-DdefaultChunkSize=131072
-DbufferAllocatorClass=com.qfs.buf.impl.HeapBufferAllocator
-DchunkAllocatorClass=com.qfs.chunk.buffer.impl.HeapBufferChunkAllocator
-DchunkAllocatorClass=com.qfs.chunk.direct.impl.DirectChunkAllocator
-DchunkAllocatorClass=com.qfs.chunk.direct.impl.MmapDirectChunkAllocator
-DchunkAllocatorClass=com.qfs.chunk.direct.allocator.impl.SlabMemoryAllocator
JGroups does not work with IPv6 -Djava.net.preferIPv4Stack=true
|
IPepperJVMConstants.IPepperJITAnalysis |
JIT Class Compilation audit
-XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation -XX:+TraceClassLoading
Optionally add -XX:+PrintAssembly
https://github.com/AdoptOpenJDK/jitwatch/
https://github.com/AdoptOpenJDK/jitwatch/wiki/Instructions
Profiling based on ThreadDumps http://techblog.netflix.com/2015/07/java-in-flames.html
|
IPepperJVMConstants.IPepperJMCConstants |
Enable Java Mission Control http://docs.oracle.com/cd/E15289_01/doc.40/e15070/usingjfr.htm
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
One may want additional Stack-traces out of safe points: -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints
https://docs.oracle.com/cd/E15289_01/doc.40/e15070/config_rec_data.htm
Start from startup.
|
Class | Description |
---|---|
GCInspector |
This class registers itself as listener on GC events.
|
HeapIsTooHigh |
This component enables switching some special mode when the memory is too high: cancel old queries, stop enqueuing in
transaction wrapper,...
|
PepperForOracleJVM |
Holds all call to methods/fields not in the Java spec but present in the Oracle jvm
|
PepperGarbageCollectionNotificationInfo |
Wrap the usage of GarbageCollectionNotificationInfo which is restricted API
|
PepperHeapDumpHelper |
Various helpers related to heap-dumps
|
PepperMathHelper |
Helpers related to math and numbers
|
Copyright © 2014–2021. All rights reserved.