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" />