Professional Documents
Culture Documents
/Heap
JVM32Bit4GWindows2GLinux 3G64Bi
JVM-Xms1/641G
JVM-Xmx1/41G
40%JVM-Xmx -XX:MinHeapFreeRatio=
70%JVM-Xms -XX:MaxHeapFreeRatio=
-Xms-XmxGC
/
Java3YoungOldPermanent
Young(Nursery)
GC
Young4M1/15JVM
Young3 EdenSurvivor
-XX:NewRatio= YoungOld-server1:2young
-XX:SurvivorRatio= EdenSurvivor32Survivio
Old(Tenured)
-XX:MaxTenuringThreshold= CMS0GC
Permanent
Class64M -XX:MaxPermSiz
GC
collection
Minor CollectionGCyoung
Major CollectionYoungOldFull GCOld
GC
Survior spacesEden
GC
GC
(copying)(ThreadLocal
(mark-sweep)
(mark-sweep-compact)
GC
(Serial Collector)
-XX:+UseSerialGC
(Throughput Collector)
-XX:+UseParallelGCJDK5 -server
CPUCPU
2+CPU
-XX:MaxGCPauseMillis= -XX:GCTimeRatio GC
(Concurrent Low Pause Collector-CMS)
-XX:+UseConcMarkSweepGC
(Incremental Concurrent-Mark-Sweep/i-CMS)CMS
GC JVMA Collection of JVM Options
(Parallel)(Concurrent)
CPU
CPU
YoungGCGC
JDK5.0--Don't Pause
Tuning Garbage Collection with the 5.0 Java Virtual Machine
-Xms-Xmx
128M
java CXms128m
CXmx256m -XX:NewRatio
128m3 131/4
CXX:NewRatio =3-XX:NewSize-XX:MaxNewsize
64m:
4mjvmjvm
-XX:MaXPerSizeWebLogic Server
32m64m
HotSpotEden
NewRationSurvivorRationEden
HotSpot
edenMaxTenuring Threshold
jdk1.4.2 JVMhttp://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html
(for windows)http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.ht
stablehttp://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
http://blog.csdn.net/sfdev/archive/2008/01/23/2062042.aspx
-XXjvmSUN
Java HotSpot VM-XX:
Behavioral Optionsjvm
Performance Tuningjvm
Debugging Optionsjvmjvm
sunOS
-XX:-DisableExplicitGC System.gc()jvmgc
-XX:+MaxFDLimit
-XX:+ScavengeBeforeFullGC GCFull GC
-XX:+UseGCOverheadLimit OOMjvmGC
-XX:-UseConcMarkSweepGC GC
-XX:-UseParallelGC GC
-XX:-UseParallelOldGC Full GC-XX:-UseParallelGC
-XX:-UseSerialGC GC
-XX:+UseThreadPriorities
jvmGC
SerialGCjvmGCGC
ParallelGCGCGCapp
ConcMarkSweepGCGCGC
-XX:LargePageSizeInBytes=4m Java
-XX:MaxHeapFreeRatio=70 GCjava
-XX:MaxNewSize=size
-XX:MaxPermSize=64m
-XX:MinHeapFreeRatio=40 GCjava
-XX:NewRatio=2
-XX:NewSize=2.125m
-XX:ReservedCodeCacheSize=32m
-XX:ThreadStackSize=512 0
-XX:+UseLargePages
-XX:-CITime JIT
-XX:ErrorFile=./hs_err_pid<pid>.log
-XX:-ExtendedDTraceProbes solarisdtrace
-XX:HeapDumpPath=./java_pid<pid>.hprof
-XX:-HeapDumpOnOutOfMemoryError OOM
-XX:OnError="<cmd args>;<cmd args>" ERROR
-XX:OnOutOfMemoryError="<cmd args>;<cmd args>" OOM
-XX:-PrintClassHistogram Ctrl-Breakjmap -histo
-XX:-PrintConcurrentLocks Ctrl-Breakjstack -l
-XX:-PrintCommandLineFlags
-XX:-PrintCompilation
-XX:-PrintGC GC
-XX:-PrintGC Details GC
-XX:-PrintGCTimeStamps GC
-XX:-TraceClassLoading
-XX:-TraceClassLoadingPreorder
-XX:-TraceClassResolution
-XX:-TraceClassUnloading
-XX:-TraceLoaderConstraints
-XX:+UseAdaptiveSizePolicySurvivor
-XX:MaxTenuringThreshold=00Survivor
-XX:MaxGCPauseMillis=100:JVM
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800
M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:
CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccu
pancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+Pri
ntGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log
JVM 32-bt64-bit
JVM
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k
-Xmx3550mJVM3550M
-Xms3550mJVM3550m-XmxJVM
-Xmn2g2G= + +
-Xss128kJDK5.01M256
java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPerm
Size=16m -XX:MaxTenuringThreshold=0
-XX:NewRatio=4:EdenSurvivor4
-XX:SurvivorRatio=4EdenSurvivor4Survivor
-XX:MaxPermSize=16m:16m
-XX:MaxTenuringThreshold=00Survivor
JVM
JVM
java -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThread
s=20
-XX:+UseParallelGC
-XX:ParallelGCThreads=20
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThread
s=20 -XX:+UseParallelOldGC
-XX:+UseParallelOldGCJDK6.0
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis
=100
-XX:MaxGCPauseMillis=100:JVM
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis
=100 -XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveSizePolicySurvivor
JVM
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMa
rkSweepGC -XX:+UseParNewGC
-XX:+UseConcMarkSweepGC-XX:NewRatio=4
-XX:+UseParNewGC:CMSJDK5.0JVM
-XX:CMSFullGCsBeforeCompaction
-XX:+UseCMSCompactAtFullCollection
JVM
-XX:+PrintGC
-XX:+PrintGCApplicationConcurrentTime:
Application time: 0.5291524 seconds
-XX:+PrintGCApplicationStoppedTime
Total time for which application threads were stopped: 0.0468229 seconds
-XX:PrintHeapAtGC:GC
-Xms:
-Xmx:
-XX:NewSize=n:
-XX:NewRatio=n::313
-XX:SurvivorRatio=n:EdenSurvivorSurvivor3
-XX:MaxPermSize=n:
-XX:+UseSerialGC:
-XX:+UseParallelGC:
-XX:+UseParalledlOldGC:
-XX:+UseConcMarkSweepGC:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
-XX:ParallelGCThreads=n:CPU
-XX:MaxGCPauseMillis=n:
-XX:GCTimeRatio=n:1/(1+n)
-XX:+CMSIncrementalMode:CPU
-XX:ParallelGCThreads=n:CPU
Gbit
GC
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=0Full GC
1: heap size
a: -Xmx<n>
jvm heap , :-Xmx=2g
b: -Xms<n>
C , :-Xss128k webx256K
g: -XX:NewRatio=<n>
Old Generation concurrent cmark sweep gc,gc thread app thread ( init
ad). app pause , , web server
g: -XX:+UseCMSCompactAtFullCollection
64 , jboss log , ,
5: