JVM引數優化
JAVA_OPTS="$JAVA_OPTS -noverify -Dfile.encoding=UTF-8 -server -Xms4096m -Xmx4096m -Xmn1024m -Xss256K -XX:NewSize=512m -XX:MaxNewSize=2048 -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/gclogs/gc.log -Djava.awt.headless=true"
解釋:
-noverify 關閉位元組碼校驗
-Dfile.encoding=UTF-8 設定啟動編碼
-server 以服務模式啟動
-Xms4096m 初始堆記憶體
-Xmx4096m 最大堆記憶體
-Xmn1024m 堆中新生代大小
-Xss256K:每個執行緒佔用的空間
-XX:NewSize=512m 非堆區新生代大小
-XX:MaxNewSize=2048 非堆區新生代最大值
-XX:+DisableExplicitGC 禁止顯示呼叫gc,System.gc()。
-XX:MaxTenuringThreshold=15 在年輕代存活次數
-XX:+UseParNewGC 對年輕代採用多執行緒並行回收
-XX:ParallelGCThreads=4 預設開啟4個執行緒對新生代進行回收。
-XX:+UseConcMarkSweepGC 年老代採用CMS回收
-XX:+CMSParallelRemarkEnabled 在使用UseParNewGC 的情況下, 儘量減少mark的時間。
-XX:+UseCMSCompactAtFullCollection 在使用concurrent gc的情況下, 防止memoryfragmention, 對live object 進行整理,使memory碎片減少。
-XX:LargePageSizeInBytes=128m 指定Java heap的分頁頁面大小。
-XX:+UseFastAccessorMethods get,set 方法轉成原生代碼。
-XX:+UseCMSInitiatingOccupancyOnly 指示只有在oldgeneration在使用了初始化的比例後concurrent collector 啟動收集。
-XX:CMSInitiatingOccupancyFraction=70 年老代到達70%進行gc.
-XX:+AggressiveOpts 每當JDK版本升級時,你的JVM 都會使用最新加入的優化技術。
-XX:+UseBiasedLocking 啟用一個優化了的執行緒鎖對執行緒處理自動進行最優調配。