1. 程式人生 > >JVM調優常用引數設定及JMX引數設定監控

JVM調優常用引數設定及JMX引數設定監控

JVM常用引數設定

JVM堆空間佈局

 堆設定

           -Xms:初始堆大小,避免垃圾回收之後,JVM調整,一般和Xmx設定一樣大

           -Xmx:最大堆大小

           -Xmn :  年輕代大小,整個堆大小=年輕代大小+年老代大小+持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。

           -Xss:設定每個執行緒的堆疊大小。JDK5.0以後每個執行緒堆疊大小為1M,以前每個執行緒堆疊大小為256k。根據應用的執行緒所需記憶體大小進行調整。在相同實體記憶體下,減小這個值能生成更多的執行緒。但是作業系統對一個程序內的執行緒數還是有限制的,不能無限生成,經驗值在3000~5000左右。

           -XX:NewRatio=n:設定年輕代年老代的比值。如:為3,表示年輕代年老代比值為1:3,表示Eden:Survivor=3:2,一個Survivor區佔整個年輕代的1/5。

           -XX:MaxPermSize=n:設定持久代大小

          -XX:PermSize=n:設定持久代大小

收集器設定

           -XX:+UseSerialGC:設定序列收集器

           -XX:+UseParallelGC:設定並行收集器

           -XX:+UseParalledlOldGC:設定並行年老代

收集器

           -XX:+UseConcMarkSweepGC:設定併發收集器

垃圾回收統計資訊

           -XX:+PrintGC

           -XX:+PrintGCDetails

           -XX:+PrintGCTimeStamps

           -Xloggc:filename

並行收集器設定

           -XX:ParallelGCThreads=n:設定並行收集器收集時使用的CPU數。並行收集執行緒數。

           -XX:MaxGCPauseMillis=n:設定並行收集最大暫停時間

           -XX:GCTimeRatio=n:設定垃圾回收時間佔程式執行時間的百分比。公式為1/(1+N)

併發收集器設定

           -XX:+CMSIncrementalMode:設定為增量模式。適用於單CPU情況。

           -XX:+ParallelGCThreads=n:設定併發收集器年輕代收集方式為並行收集時,使用的CPU數。並行收集執行緒數。

JMX引數設定

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=監控埠 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=監控IP