http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html
Hadoop 进程JVM优化:
#-XX:+UnlockExperimentalVMOptions -XX:G1LogLevel=finest
#-XX:+UseG1GC -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:InitiatingHeapOccupancyPercent=35
export HADOOP_OPTS="$HADOOP_OPTS -Djute.maxbuffer=40960000 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m"
export HADOOP_NAMENODE_OPTS="$HADOOP_NAMENODE_OPTS -Djute.maxbuffer=40960000 -Xmx40g -Xms40g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+G1PrintRegionLivenessInfo -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Xloggc:${HDFS_YARN_LOGS_DIR}/jvm_namenode_gc.log.$(date +%Y-%m-%d-%H) -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HDFS_YARN_LOGS_DIR}"
export HADOOP_DATANODE_OPTS="$HADOOP_DATANODE_OPTS -Djute.maxbuffer=40960000 -Xmx8g -Xms8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+G1PrintRegionLivenessInfo -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Xloggc:${HDFS_YARN_LOGS_DIR}/jvm_datanode_gc.log.$(date +%Y-%m-%d-%H) -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HDFS_YARN_LOGS_DIR}"
export YARN_RESOURCEMANAGER_OPTS="$YARN_RESOURCEMANAGER_OPTS -Djute.maxbuffer=40960000 -Xms30g -Xmx30g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+G1PrintRegionLivenessInfo -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Xloggc:${HDFS_YARN_LOGS_DIR}/jvm_resourcemanager_gc.log.$(date +%Y-%m-%d-%H) -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HDFS_YARN_LOGS_DIR}"
export YARN_NODEMANAGER_OPTS="$YARN_NODEMANAGER_OPTS -Djute.maxbuffer=40960000 -Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+G1PrintRegionLivenessInfo -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Xloggc:${HDFS_YARN_LOGS_DIR}/jvm_nodemanager_gc.log.$(date +%Y-%m-%d-%H) -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HDFS_YARN_LOGS_DIR}"
export HADOOP_JOB_HISTORYSERVER_OPTS="$HADOOP_JOB_HISTORYSERVER_OPTS -Djute.maxbuffer=40960000 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1ReservePercent=15 -XX:G1HeapRegionSize=16m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+G1PrintRegionLivenessInfo -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -Xloggc:${HDFS_YARN_LOGS_DIR}/jvm_historyserver_gc.log.$(date +%Y-%m-%d-%H) -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HDFS_YARN_LOGS_DIR}"