namenode啟動參數:
-Xmx153600m -Xms153600m -Xmn4096m -verbose:gc -Xloggc:
$LOG_DIR/namenode.gc.log -XX:ErrorFile=
$LOG_DIR/hs_err_pid.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=1000 -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
$ODPS_OPTS
使用的是CMSGC減少GC執行時的停頓時間,垃圾回收線程和應用線程同時執行。
關于server模式和client模式:
?
?
JVM如果不指定-server或-client選項,JVM會在啟動的時候根據硬件環境判斷以server模式啟動還是以client模式啟動(適用于Java 5及以上版本)。
JVM工作在server模式可以大大提高性能,但應用的啟動會比client模式慢大概10%。當該參數不指定時,虛擬機啟動檢測主機是否為服務器,如果是,則以server模式啟動,否則以client模式啟動,Java 5檢測的根據是至少2個CPU和最低2GB內存。
JVM工作在server模式可以大大提高性能,但應用的啟動會比client模式慢大概10%。當該參數不指定時,虛擬機啟動檢測主機是否為服務器,如果是,則以server模式啟動,否則以client模式啟動,Java 5檢測的根據是至少2個CPU和最低2GB內存。
當JVM用于啟動GUI界面的交互應用時適合于使用client模式,當JVM用于運行服務器后臺程序時建議用server模式。
?
? ? ? ??Young區GC的方式:
?
1、 串行GC(Serial Copying)
client模式下的默認GC方式,也可使用-XX:+UseSerialGC指定。
2、 并行回收GC(Parallel Scavenge)
server模式下的默認GC方式,也可用-XX:+UseParallelGC強制指定。
采用PS時,默認情況下JVM會在運行時動態調整Eden:S0:S1的比例,如果不希望自動調整可以使用-XX:-UseAdaptiveSizePolicy參數,內存分配和回收的算法和串行相同,唯一不同僅在于回收時為多線程。
3、 并行GC(ParNew)
CMS GC時默認采用,也可以采用-XX:+UseParNewGC指定。
內存分配、回收和PS相同,不同的僅在于會收拾會配合CMS做些處理。
?
Old區GC的方式:
1、 串行GC(Serial MSC)
client模式下的默認GC方式,可通過-XX:+UseSerialGC強制指定。每次進行全部回收,進行Compact,非常耗費時間。
client模式下的默認GC方式,可通過-XX:+UseSerialGC強制指定。每次進行全部回收,進行Compact,非常耗費時間。
2、 并行GC(Parallel MSC)
server模式下的默認GC方式,也可用-XX:+UseParallelGC=強制指定。可以在選項后加等號來制定并行的線程數。
3、 并發GC(CMS)線上環境采用的GC方式,也就是Realese環境的方式
使用CMS是為了減少GC執行時的停頓時間,垃圾回收線程和應用線程同時執行,可以使用-XX:+UseConcMarkSweepGC=指定使用,后邊接等號指定并發線程數。CMS每次回收只停頓很短的時間,分別在開始的時候(Initial Marking),和中間(Final Marking)的時候,第二次時間略長。
參考:http://blog.sina.com.cn/s/blog_5f5716580100wesx.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
