Tomcat7 默認使用內存java
Tomcat默認可以使用的內存爲128MBlinux
Tomcat7內存設置(catalina.bat)tomcat
JAVA_OPTS='-Xms256m -Xmx512m' 服務器
JAVA_OPTS='-Xms【初始化內存大小】 -Xmx【可以使用的最大內存】' -- (catalina.bat)less
Tomcat7(linux)(catalina.sh) (JDK1.7)cygwin=false前加入優化
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=512m"
cygwin=falsespa
Tomcat7(linux)(catalina.sh) (JDK1.8)cygwin=false前加入線程
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=512m"
cygwin=false調試
設置後啓動或關閉服務報:server
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
設置Tomcat7優化(catalina.bat)
JAVA_OPTS= -server -Xms2000M -Xmx2000M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=300M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true
堆內存分配
JVM初始分配的堆內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的堆內存由-Xmx指定,默認是物理內存的1/4。默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減小堆直到-Xms的最小限制.所以服務器通常設置-Xms、-Xmx 相等以免在每次GC 後調整堆的大小.
注:若是-Xmx 不指定或者指定偏小,應用可能會致使java.lang.OutOfMemory錯誤,此錯誤來自JVM,不是Throwable的,沒法用try...catch捕捉;
非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。
XX:MaxPermSize設置太小會致使java.lang.OutOfMemoryError: PermGen space 就是內存益出。
調試前臺啓動tomcat(Linux)
./catalina.sh run -- 前臺啓動tomcat服務
設置最大鏈接數
maxHttpHeaderSize:HTTP請求和響應頭的最大量,以字節爲單位,默認值爲4096字節 minSpareThreads:設當鏈接器第一次啓協建立線程的數目,確保至少有這麼多的空閒線程可用。默認值爲4 maxSpareThreads:容許存在空閒線程的最大數目,默認值爲50 enableLookups:調用request、getRemoteHost()執行DNS查詢,以返回遠程主機的主機名,若是設置爲false,則直接返回IP地址。 例: <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />