Java垃圾回收演算法
標記-清除演算法
複製演算法
標記-整理演算法
分代收集演算法
Java垃圾收集器
1。Serial收集器
2。ParNew收集器
3。並行收集器
4。SerialOld 收集器
5。Parallel Old收集器
6。CMS收集器
7。G1收集器
JVM引數設定
1。堆記憶體大小引數
-Xmx:最大堆大小 物理記憶體的1/4 預設空餘堆記憶體大於70%,JVM較少-Xms限制-Xms:初始堆大小 物理記憶體的1/64 預設空餘堆記憶體小於40%,JVM增大直到-Xmx的最大限制-Xmn:新生代大小 eden+2*survivor空間-Xss:每個執行緒的堆疊大小 減小這個值能生成更多的執行緒-XX:MaxPermSize 設定老年代最大值 物理記憶體的1/4
The maximum amount of heap to use。 Default is left to JVM default。
export HBASE_HEAPSIZE=1G
指定堆記憶體大小,一般不超過實際物理記憶體的1/2
2。CMS相關引數
1。 -XX:+UseConcMarkSweepGC 使用CMS 垃圾收集器2。-XX:+UseParNewGC 新生代採用並行GC策略3。-XX:CMSFullGCsBeforeCompaction 多少次FullGC後進行記憶體壓縮4。-XX:+CMSParallelRemarkEnabled 降低標記停頓5。-XX:UseCMSCompactAtFullCollection 在FullGC的時候,對老年代的壓縮6。-XX:+UseCMSInitiatingOccupancyOnly 使用手動定義初始化定義開始CMS收集7。-XX:CMSInitiatingOccupancyFraction 使用CMS作為垃圾收集,使用N%後開始8。-XX:CMSInitiatingPermOccupancyFraction 設定PermGen使用到達多少比率時觸發9。-XX:CMSIncrementalMode 設定為增量模式 用於單CPU的情況
在hbase-env。sh檔案中設定
# Extra Java runtime options。# Below are what we set by default。 May only work with SUN JVM。# For more on why as well as other possible settings,# see http://hbase。apache。org/book。html#performanceexport HBASE_OPTS=“$HBASE_OPTS -XX:+UseConcMarkSweepGC”
3。輔助引數
export HBASE_OPTS=“$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails-XX:+PrintGCTimeStamps -Xloggc:${HBASE_HOME}/logs/gc-hbase。log”-verbose:gc:指定輸出虛擬機器中的詳細資訊-XX:+PrintGCDetails:指定輸出格式-XX:+PrintGCTimeStamps:表示輸出GC的時間-XXloggc:指定GC輸出日誌的輸出路徑