JVM參數典型配置

最近正好有時間學習一下JVM相關的知識,個人覺得有些東西還不錯,和大家風險一下。 堆大小設置 

 年輕代的設置很關鍵 

 JVM中最大堆大小有三方面限制:相關操作系統的數據模型(32-bt還是64-bit)限制;系統的可用虛擬內存限 

 制;系統的可用物理內存限制。32位系統下,一般限制在1.5G~2G;64爲操作系統對內存無限制。在 

 Windows Server 2003 系統,3.5G物理內存,JDK5.0下測試,最大可設置爲1478m。 

 典型設置: 

    java  -Xmx3550m -Xms3550m -Xmn2g –Xss128k 

    -Xmx3550m:設置JVM最大可用內存爲3550M。 

    -Xms3550m:設置JVM促使內存爲3550m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成 

    後JVM重新分配內存。 

    -Xmn2g:設置年輕代大小爲2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般 

    固定大小爲64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推 

    薦配置爲整個堆的3/8。 

    -Xss128k:設置每個線程的堆棧大小。JDK5.0以後每個線程堆棧大小爲1M,以前每個線程堆棧大小 


    -XX:SurvivorRatio=4 :設置年輕代中Eden區與Survivor區的大小比值。設置爲4,則兩個Survivor 

    區與一個Eden區的比值爲2:4,一個Survivor區佔整個年輕代的1/6 

    -XX:MaxPermSize=16m:設置持久代大小爲16m。 

    -XX:MaxTenuringThreshold=0:設置垃圾最大年齡。如果設置爲0的話,則年輕代對象不經過 

    Survivor區,直接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設置爲一個較大 

    值,則年輕代對象會在Survivor區進行多次複製,這樣可以增加對象再年輕代的存活時間,增加在年輕 

    代即被回收的概論。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章