一.內存
注:
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