Tomcat_性能优化

容器启动:

tomcat容器启动时,读取webapps目录下的web.xml文件,然后对xml进行解析,读取servlet注册信息,然后将每个应用中注册的servlet类进行加载,并通过反射的方式实例化;

JVM参数优化:

-Xms<size> 表示JVM初始化堆的大小,-Xmx<size> 表示JVM 堆的最大值;一般建议堆的最大值设置为可用内存的最大值的80%;在catalina.bat中,设置 JAVA_OPTS=’-Xms256m-Xmx512m’,表示初始化内存为256MB,可以使用的最大内存为512MB;

禁用DNS查询: 客户端DNS查询需要占用网络,并且需要获取对应IP消耗一定的时间,为了消除DNS查询对性能的影响,在tomcat_home/conf/server.xml<Connector/> 节点的enableLookups参数设置为false

调整线程数:tomcat_home/conf/server.xml<Connector/> 节点配置相关参数:

参数说明
minProcessors最小空闲连接线程数,用于提高系统处理性能;
maxProcessors最大连接线程数,即并发处理的最大请求数;
acceptCount允许的最大连接数,应大于等于maxProcessors
maxThreadsTomcat可创建最大的线程数
minSpareThreads初始化时创建的线程数
maxSpareTgreads一旦创建的线程数超过这个值,tomcat会关闭不再需要的socket线程
connectionTimeout网络连接超时,设置为0表示永不超时
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  debug="0" disableUploadTimeout="true" />

禁止列目录下的文件:tomcat_home/conf/web.xmllistings 参数设置为false即可;

利用缓存和压缩: 对于静态资源最好能够缓存起来,这样就不必每次从磁盘读取,建议使用Nginx作为缓存服务器,将image,css,js等静态资源都进行缓存,有效减少后端tomcat的访问;为了加快网络传输速度,开启gzip压缩,也交由前端的Nginx来完成;

采用集群: 单个服务器性能总是有限的,我们可以使用集群来实现横向扩展;采用Nginx来作为请求分流的服务器,后端多个tomcat共享session来完成工作;


Tomcat中的部署方式:

方式一:在tomcat_home/conf/web.xml<host/> 节点中添加:

<Context path="/XXX" docBase="D:/XXX/XXX/WebRoot" debug="0" privileged="true">
</Context>

方式二:将WEB项目拷贝到tomcat_home/webapps/ 目录下即可;

方式三:灵活版本:在tomcat_home/conf 目录下,新建Catalina/localhost目录,在该目录下新建一个XML文件:

<Context path="/XXX" docBase="D:/XXX/XXX/WebRoot" debug="0" privileged="true">
</Context>

服务器端运行的项目名称为path,外部访问的URL则使用XML的文件名,该方式方便的隐藏了项目名称,对于一些项目名称固定不能更改,但外部访问时又想更换路径的,十分有效;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值