一,tomcat自身优化。java
maxThreads :tomcat处理请求是是用的线程来处理的,这个表示tomcat的最大线程数,默认200。浏览器
minSpareThreads:最小空闲线程数,表示没人访问的时候,也开多少线程等待访问。tomcat
maxSpareThreads:最大备用线程数,一旦建立的线程超过这个值,Tomcat 就会关闭再也不须要的 socket 线程。服务器
上边配置的参数,最大线程 500(通常服务器足以),要根据本身的实际状况合理设置,设置越大会耗费内存和 CPU,由于 CPU 疲于线程上下文切换,没有精力提供请求服务了,最小空闲线程数 20,线程最大空闲时间 60 秒,固然容许的最大线程链接数还受制于操做系统的内核参数设置,设置多大要根据本身的需求与环境。固然线程能够配置在“tomcatThreadPool”中,也能够直接配置在“Connector”中,但不能够重复配置。网络
URIEncoding:tomcat容器编码配置。jvm
connnectionTimeout:网络超时时间,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒,可根据检测实际状况,适当修改。创建链接到数据发送过来的时间。socket
enableLookups:反查域名,true返回远程主机的主机名,false返回ip地址,为了提升处理能力,应设置为 false。优化
disableUploadTimeout:上传时是否使用超时机制。编码
connectionUploadTimeout:上传超时时间,毕竟文件上传可能须要消耗更多的时间,这个根据你本身的业务须要本身调,以使Servlet有较长的时间来完成它的执行,须要与上一个参数一块儿配合使用才会生效。操作系统
acceptCount:指定当全部可使用的处理请求的线程数都被使用时,可传入链接请求的最大队列长度,超过这个数的请求将不予处理,默认为100个。
keepAliveTimeout:长链接最大保持时间(毫秒),表示在下次请求过来以前,Tomcat 保持该链接多久,默认是使用 connectionTimeout 时间,-1 为不限制超时。即该链接使用完后 多久关闭。
maxKeepAliveRequests:表示在服务器关闭以前,该链接最大支持的请求数。超过该请求数的链接也将被关闭,1表示禁用,-1表示不限制个数,默认100个,通常设置在100~200之间。
compression:是否对响应的数据进行 GZIP 压缩,off:表示禁止压缩;on:表示容许压缩(文本将被压缩)、force:表示全部状况下都进行压缩,默认值为off,压缩数据后能够有效的减小页面的大小,通常能够减少1/3左右,节省带宽。
compressionMinSize:表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,若是开启了压缩功能,默认值就是2048。
compressableMimeType:压缩类型,指定对哪些类型的文件进行数据压缩。
noCompressionUserAgents="gozilla, traviata": 对于如下的浏览器,不启用压缩。
若是已经对代码进行了动静分离,静态页面和图片等数据就不须要 Tomcat 处理了,那么也就不须要配置在 Tomcat 中配置压缩了。
二,Tomcat内存优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们能够在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可以使用的最大内存;
-XX: PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置
现公司服务器内存通常均可以加到最大2G ,因此能够采起如下配置:
JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’
配置完成后可重启Tomcat ,经过如下命令进行查看配置是否生效:
关于java_opts的说明配置
https://blog.csdn.net/cuker919/article/details/8233821
https://www.jianshu.com/p/24f5b30cc6f7
https://my.oschina.net/abcfy2/blog/192203 关于java_opts配置在哪的。很精髓
直接在bin目录下加 setenv.sh 将java_opts配置在里面便可。配置可以下:
JAVA_OPTS="--server -Xmx1280m -XX:+UseConcMarkSweepGC"
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
加2篇关于配置的连接
https://blog.csdn.net/david_pfw/article/details/82918331
https://blog.csdn.net/ljj_9/article/details/79145324