tomcat调优,
https://www.cnblogs.com/zhuawang/p/5213192.html
一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)
在文档/bin/catalina.sh的前面,增加如下配置:
JAVA_OPTS="-Xms2048m –Xmx2048m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=512m"
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【能够使用的最大内存】'
-Xms<size> JVM初始化堆的大小
-Xmx<size> JVM堆的最大值 实际参数大小根据服务器配置或者项目具体设置.
Java程序中,每个线程都有自己的Stack Space。这个Stack Space不是来自Heap的分配。
所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。
类似还有一段这样的配置
JAVA_OPTS="-Xmn768m -Xms2048m -Xmx4096m -Xss512k -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"
GC_PLS="-XX:ParallelGCThreads=16 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:CMSInitiatingOccupancyFraction=70"
二:Tomcat 线程优化 在server.xml中
<Connector port="37073" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
minProcessors="100" maxProcessors="5000"
maxThreads="5000" minSpareThreads="1000" maxSpareThreads="4000"
enableLookups="false" acceptCount="3500"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"
disableUploadTimeout="true" URIEncoding="UTF-8"/>
maxThreads="X" 表示最多同时处理X个连接
minSpareThreads="X" 初始化X个连接
maxSpareThreads="X" 表示如果最多可以有X个线程,一旦超过X个,则会关闭不在需要的线程
acceptCount="X" 当同时连接的人数达到maxThreads时,还可以排队,队列大小为X.超过X就不处理