tomcat自身优化
Tomcat 的自身参数的优化,修改配置文件中的配置信息,调整连接数,超时等。
1.Connector 连接器的配置
Tomcat 连接器的三种方式: bio、nio 和 apr,三种方式性能差别很大,apr 的性能最优, bio 的性能最差。而 Tomcat 7 使用的 Connector 默认就启用的 Apr 协议,但需要系统安装 Apr 库,否则就会使用 bio 方式。
2.配置文件优化
配置文件优化就是对server.xml进行优化,可以大大提升tomcat请求处理的能力。修改<Connector …>节点,增加 executor 属性。调整之后:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="30000"
URIEncoding="UTF-8"
minSpareThreads="100"
maxThreads="4096"
acceptCount="10000"
enableLookups="false"
disableUploadTimeout="true"
redirectPort="8443" />
- "org.apache.coyote.http11.Http11Nio2Protocol:在tomcat8中有最新的nio2,速度更快,也建议使用nio2,nio2连接器需要tomcat8.0以上才有
- connnectionTimeout:网络超时时间,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒,可根据检测实际情况,适当修改
- URIEncoding:tomcat容器编码配置
- maxThreads :tomcat处理请求是是用的线程来处理的,这个表示tomcat的最大线程数,默认200(maxThreads='5000' 最大可以处理5000发并发请求 nginx一般可以达到5w)
- minSpareThreads:最小空闲线程数,表示没人访问的时候,也开多少线程等待访问(最小要启动的线程数去处理用户的请求,这个随着用户的请求是不断增加的)
- acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为100个。
- enableLookups:反查域名,true返回远程主机的主机名,false返回ip地址,为了提高处理能力,应设置为 false(Tomcat接收用户请求根据用户的IP去反查用户的主机名,相当于查找DNS,这样做没有意义的 主要是为了安全,看看用户ip可不可以解析出域名,这个消耗时间 ,这个要关闭)
- disableUploadTimeout="true" 禁止上传超时,上传时是否使用超时机制