標籤:
本文轉自:http://my.oschina.net/xishuixixia/blog/132395
常用的調優參數。
1.堆大小
-Xms和-Xmx用於指定堆大小,我們需要將他們倆設定為一樣的值,以避免在GC後重新調整堆的大小。
2.年輕代大小
-XX:NewSize=?和–XX:MaxNewSize=?,年輕代大小建議設定為堆大小的1/3或者1/4,兩個值大小一樣。設定年輕代大小相當重要,如果年輕代設定小了,那麼一些可以生存周期短的對象可能被移到年老代,導致Full GC,而設定太大,也會引起stop the world。
3.方法區大小
-XX:PermSize=256m和-XX:MaxPermSize=256m,方法區大小不會影響效能,只要你設定的值保證應用不報OOM之類的錯誤即可。
4.GC日誌
-Xloggc:$CATALINA_BASE/logs/gc.log、-XX:+PrintGCDetails、-XX:+PrintGCDateStamps,儘可能多的記錄一些GC日誌,這樣可以全面的分析系統行為。
5.GC演算法
-XX:+UseParNewGC、-XX:+CMSParallelRemarkEnabled、-XX:+UseConcMarkSweepGC、 -XX:CMSInitiatingOccupancyFraction=75,這隻是一般系統中經常用的參數,你還需要根據你的系統情況選擇最適合你的系統。
6.堆快照
-XX:+HeapDumpOnOutOfMemoryError和-XX:HeapDumpPath=$CATALINA_BASE/logs。
7.OOM發生之後的操作
OOM後關閉伺服器:-XX:OnOutOfMemoryError=$CATALINA_HOME/bin/stop.sh
OOM後重啟伺服器: -XX:OnOutOfMemoryError=$CATALINA_HOME/bin/restart.sh
JVM調優總結(轉)