JVM調優之Tomcat啟動參數配置及詳解


開發項目中會遇到Tomcat內存溢出(java.lang.OutOfMemoryError: PermGen space)的問題,通過查找資料找到是通過設置Tomcat 啟動堆空間大小、年輕代大小、每個線程大小參數進行調優的,具體如下:

一、在Tomcat 啟動腳本(catalina.sh/catalina.bat)首行添加如下配置即可解決此問題

    JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=512m"

    1:-Xms 堆空間初始大小

    2:-Xmx 堆空間最大數值

    3:-Xmn 年輕代的堆大小

    4:-Xss    每個線程堆大小

二、JVM堆大小的默認最大和最小值(參考)

操作系統及JVM類型 初始堆的大小(Xms) 最大堆的大小(Xmx)
Linux/Solaris,32位客戶端 16MB 256MB
Linux/Solaris,32位服務器 64MB 取1GB和物理內存大小1/4二者中的最小值
Linux/Solaris,64位服務器 取512MB和物理內存大小1/64二者中的最小值 取32GB和物理內存大小1/4二者中的最小值
MacOS,64位服務器型JVM 64MB 取1GB和物理內存大小1/4二者中的最小值
32位Window系統,客戶端型JVM 16MB

256MB

64位Window系統,客戶端型JVM 64MB

1GB和物理內存大小1/4二者中的最小值

三、一般性調優辦法

    -Xmx 和-Xms 一般設置為一樣大小,這樣能稍微提高GC的運行效率,因為他/她不再需要估算堆是否需要調整大小了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM