(windows下)tomcat优化--内存,并发.缓存三方面优化
一.内存
注:
jdk1.8中废弃了-XX:PermSize和-XX:MaxPermSize的持久态(存放常量、静态变量区)配置,
多了一个元数据区(Metadata Space:默认为内存的0.2%):所以设置元数据区大小的参数也变成对应的MetaspaceSize和MaxMetaspaceSize了。
set JAVA_OPTS=-server -Xms2048M -Xmx2048M -Xss2m -XX:MetaspaceSize=256m -XX:MaxNewSize=1024m
开启tomcat后,使用jps查看端口占用情况:
bootstrap即是tomcat的进程号
然后用jmap -heap 20372查看详情
上图显示证明配置已经成功. 注:jps和jmap命令必须要配置好java的环境变量.
2.配置优化(并发)
打开tomcat安装目录\conf\server.xml文件,定位到这一行:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
这一行就是我们的tomcat容器性能参数设置的地方,它一般都会有一个默认值,这些默认值是远远不够我们的使用的,我们来看经过更改后的这一段的配置:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="1000" minSpareThreads="100" acceptCount="1000" maxConnections="1000" connectionTimeout="20000" maxHttpHeaderSize="8192" tcpNoDelay="true" compression="on" compressionMinSize="2048" disableUploadTimeout="true" redirectPort="8443" enableLookups="false" URIEncoding="UTF-8" />
配置线程池:在service标签下Connector之前配置
<!-- 线程池 --> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="100" maxIdleTime="60000" maxQueueSize="Integer.MAX_VALUE" prestartminSpareThreads="false" threadPriority="5" className="org.apache.catalina.core.StandardThreadExecutor"/>
线程池配置完成后在Connector中引用:
<Connector executor="tomcatThreadPool" ...
参考博客:http://blog.csdn.net/qq525099302/article/details/78396120
https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
http://blog.csdn.net/u012562943/article/details/51441157
http://blog.csdn.net/wangyonglin1123/article/details/50986524