Tomcat优化
目录
1.配置文件优化
- 修改 conf/server.xml 的http连接器配置中添加参数
vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
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"/>
maxTreads #最大线程数/并发
processorCache #进程缓冲
acceptCount #等待队列数?
enableLookups #关闭DNS反向查询
disableUploadTimeout #关闭上传超时
URIEncoding #网页字符集编码格式UTF-8
maxKeepAliveRequests #长连接最大请求数
connectionTimeout #长连接超时时间
compression #网页压缩
【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"】对于以下的浏览器,不启用压缩
2.系统内核优化
vim /etc/security/limits.conf #内核限制文件
* soft noproc 65535 #打开的进程数
* hard noproc 65535
* soft nofile 65535 #打开的文件数
* hard nofile 65535
* soft memlock unlimited #不做内存锁定
* hard memlock unlimited
3.内核参数配置优化
vim /etc/sysctl.conf #内核参数配置文件
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 10000
net.ipv4.tcp_keepalive_time = 1200
?4.java虚拟机JVM优化
#修改 bin/catalina.sh 文件,在 cygwin=false 配置前添加 JAVA_OPTS 参数
vim //usr/local/tomcat/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Xmn768m -XX:ParallelGCThreads=2"
#119行修改
-server 表示启动JDK的Server模式,使得在多核服务器性能更佳
-Xms2048m -Xmx2048m 设置JVM堆内存初始值和最大值为一样大,一般设置为物理内存的1/2
-XX:PermSize=1024m -XX:MaxPermSize=1024m 设置永久代(非堆内存)初始值和最大值为一样大,一般设置为物理内存的1/4
初始值和最大值设置为一样大的原因:可以减少GC(垃圾回收)的次数和内存伸缩带来的频繁内存申请,从而减少一定的系统开销
-Xmn768m 设置JVM堆内存新生代的大小,一般设置为堆内存的3/8
-XX:ParallelGCThreads=2 设置并行GC的线程数,提高垃圾回收效率
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/tomcat/temp/oom.hprof 设置java应用进程发送OOM异常退出会进行DUMP备份
-XX:+DisableExplicitGC 禁止调用System.gc()方法,防止误调用gc方法导致系统的 JVM 大起大落而使系统响应效率严重降低
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!