一、内存配置
-Xms -Xmx -XX:PermSize -XX:MaxPermSize
-Xms初始堆大小
-Xmx最大堆大小,一般情况下这两个值设为相同大小。因为如果不相同且内存不够用时会发生内存抖动现象,非常影响程序运行。
-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)
-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。
java -Xmx2047M -version 可以用来测试当前jdk虚拟内存配置是否合适
二、server.xml配置连接
<Connector port="11004" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" URIEncoding="UTF-8"/>
protocol: 默认为HTTP/1.1,也就是阻塞式,在改用org.apache.coyote.http11.Http11NioProtocol后,采用非阻塞方式处理请求,从而可以加大一定的并发量
connectionTimeout:连接超时
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
minSpareThreads:Tomcat启动初始化的线程数,默认值25
maxSpareThreads:表示如果最多可以空75个线程
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
这两个值如何起作用,请看下面三种情况
情况1:接受一个请求,此时tomcat起动的线程数没有到达maxThreads,tomcat会起动一个线程来处理此请求。
情况2:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,tomcat会把此请求放入等待队列,等待空闲线程。
情况3:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,等待队列中的请求个数也达到了acceptCount,此时tomcat会直接拒绝此次请求,返回connection refused
三、配置项目路径
<Context privileged="true" debug="0" docBase="项目路径" path="/"/>