Tomcat优化
Tomcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象
需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化(内核参数优化),Tomcat配置文件参数优化,
Java虚拟机(JVM)调优
Tomcat 配置文件参数优化
**【redirectPort】**如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的 8443 端口
**【maxThreads】**Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是
200。
**【minSpareThreads】**最小空闲线程数,Tomcat 启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10。
**【maxSpareThreads】**最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。一般不需要指定。
**【processorCache】**进程缓冲器,可以提升并发请求。默认值是200,如果不做限制的话可以设置为-1,一般采用maxThreads的值或者-1。
**【URIEncoding】**指定 Tomcat 容器的 URL 编码格式,网站一般采用UTF-8作为默认编码。
**【connnectionTimeout】**网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。
**【enableLookups】**是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回 IP
地址,为了提高处理能力,应设置为 false。
**【disableUploadTimeout】**上传时是否使用超时机制。应设置为 true。
**【connectionUploadTimeout】**上传超时时间,毕竟文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使Servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才会生效。
**【acceptCount】**指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100
个。
**【maxKeepAliveRequests】**指定一个长连接的最大请求数。默认长连接是打开的,设置为1时,代表关闭长连接;为-1时,代表请求数无限制
**【compression】**是否对响应的数据进行GZIP压缩,off:表示禁止压缩;on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为
off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。
**【compressionMinSize】**表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是
2048。
**【compressableMimeType】**压缩类型,指定对哪些类型的文件进行数据压缩。
**【noCompressionUserAgents=“gozilla, traviata”】**对于以下的浏览器,不启用压缩
如果已经进行了动静分离处理,静态页面和图片等数据就不需做 Tomcat 处理,也就不要在 Tomcat 中配置压缩了
以上是一些常用的配置参数,还有好多其它的参数设置,还可以继续深入的优化,HTTP Connector 与 AJP Connector
的参数属性值,可以参考官方文档的详细说明进行学习
vim /usr/local/tomcat/conf/server.xml ...... <Connector port="8080"
protocol="HTTP/11.1" connectionTimeout="20000" redirectPort="8443" --71行--插入
minSpareThreads="50" enableLookups="false" disableUploadTimeout="true"
acceptCount="300" maxThreads="500" processorCache="500" URIEncoding="UTF-8"
maxKeepAliveRequests="100" compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image
/jpg,image/png"/>