皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1653|回复: 12

[文档] Tomcat 优化方案

[复制链接]
发表于 2019-5-17 17:30:18 | 显示全部楼层 |阅读模式
1.提高JVM栈内存 JVM heap memory
tomcat有时候会“内存溢出”,这种问题出现在实际的生产环境中,产生这种问题的原因是tomcat使用较少的内存给进程。通过配置tomcat的配置文件(window下的tomcat/bin/catalina.bat或Linux下的tomcat/bin/catalina.sh)可以解决此问题。这种解决方法是通过增加JVM的栈内存实现的。这个方案可以让tomcat可以更多关注处理web请求,并要求尽快完成。
  1. JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
  2. -server -Xms1024m -Xmx1024m
  3. -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m
  4. -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
复制代码

2.解决JRE内存泄露
性能表现不佳的另一个主要原因是内存泄漏。可以使用最新的tomcat服务器以获得更好的性能和可伸缩性。新的tomcat包含了一个监听器来处理JRE和PermGen的内存泄漏。
 楼主| 发表于 2019-5-17 17:31:31 | 显示全部楼层
使用的监听器是
  1. <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
复制代码

3.线程池设置
线程池指定Web请求负载的数量,可以通过调整连接器属性“maxThreads”完成设置。maxThreads是由服务器处理的并发请求的最大数量。
如果maxThreads设置的值过低,将有没有足够的线程来处理所有的请求,请求将进入等待状态,只有当一个的处理线程释放后才被处理;如果设置的太大,Tomcat的启动将花费更多时间。因此它取决于我们给maxThreads设置一个正确的值。
  1. <Connector port="8080" address="localhost"
  2. maxThreads="250" maxHttpHeaderSize="8192"
  3. emptySessionPath="true" protocol="HTTP/1.1"
  4. enableLookups="false" redirectPort="8181" acceptCount="100"
  5. connectionTimeout="20000" disableUploadTimeout="true" />
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-17 17:32:59 | 显示全部楼层
4.压缩
HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。
tomcat5.0以后的版本是支持对输出内容进行压缩的,使用的是gzip压缩格式 。
  1. <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"
  2. redirectPort="8443"  executor="tomcatThreadPool"  URIEncoding="utf-8"
  3. compression="on"  compressionMinSize="50"  noCompressionUserAgents="gozilla, traviata"
  4. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  5.     />
复制代码
从上面节点的属性可以看出,要使用gzip压缩功能,你需要在Connector节点中加上如下属性
compression="on" 打开压缩功能
compressionMinSize="50" 启用压缩的输出内容大小,单位byte默认为2048
noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-17 17:34:55 | 显示全部楼层
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩
5.数据库性能调优
Tomcat性能在等待数据库查询被执行期间会降。提高性能:
使用可能包含“命名查询”的关系型数据库,Tomcat会在启动时默认加载命名查询,这个可能会提升性能。
确保所有数据库连接正确地关闭,正确配置数据库连接池设置。数据库连接池设置Resource要素的最大空闲数(maxIdle),最大连接数(maxActive),最大建立连接等待时间(maxWait)属性的值。
6. Tomcat原生库
Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。
回复 支持 反对

使用道具 举报

发表于 2019-5-24 13:55:46 | 显示全部楼层

回帖奖励 +2 金钱

要奖励
回复 支持 反对

使用道具 举报

发表于 2019-5-31 15:55:03 | 显示全部楼层

回帖奖励 +2 金钱

......................
回复

使用道具 举报

发表于 2019-6-10 17:05:52 | 显示全部楼层

回帖奖励 +2 金钱

为了积分
回复 支持 反对

使用道具 举报

发表于 2019-6-17 17:35:38 | 显示全部楼层

回帖奖励 +2 金钱

为了积分下载授权
回复 支持 反对

使用道具 举报

发表于 2019-6-20 10:15:11 | 显示全部楼层

回帖奖励 +2 金钱

学习了,今天刚好遇到了这个问题
回复 支持 反对

使用道具 举报

发表于 2019-8-8 09:59:47 | 显示全部楼层
为了积分下载授权
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-4-23 21:24 , Processed in 1.127808 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表