tomcat 如何进行优化?优化方案有哪些?

tomcat的优化

总的来说,Tomcat的优化大致分为两类,具体如下:

一.tomcat的优化

1.tomcat的自身调优

  • 采用动静分离
  • 调优Tomcat线程池
  • 调优Tomcat的连接器Connector
  • 通过修改Tomcat的运行模式
  • 禁用AJP连接器

2.JVM的调优

  • 内存调优

  • 垃圾回收策略调优

    下面对Tomcat的优化进行详细的说明.

二.tomcat的自身调优

  1. 采用动静分离
    静态资源如果让Tomcat处理的话,Tomcat的性能会损耗很多所以一般采用Nginx+Tomca实现动静分离,让Tomcat只负责jsp文件的解析工作,Nginx是实现静态资源的访问.
  2. 调优Tomcat线程池
    打开Tomcat的server.xml,配置Executor
<Executor
	name="tomcatThreadPool"
	namePrefix = "catalina-exec-"
	maxThreads = "500"
	minSpareThreads = "20"
	maxIdleTime = "60000"

接下来介绍一下参数的含义:
name : 给执行器(线程池)起一个名字
namePrefix : 指定线程池中的每一个线程的name前缀
maxThreads :线程池中最大的线程数量
minSpareThreads : 线程池中允许空闲的线程数量(多余的线程都杀死)
maxIdleTime :一个线程空闲多久算是一个空闲线程

  1. 调优Tomcat的连接器Connector
    打开Tomcat的server.xml,配置Connector
    在这里插入图片描述
    在这里插入图片描述
    enableLookups == false:关闭DNS解析,减少性能损耗
    minProcessors:服务器启动时创建的最少线程数
    maxProcessors:最大可以创建的线程数
    acceprCount=1000:线程池中的线程都被占用,允许放到队列中的请求数
    maxThreads = 3000;最大线程数
    minSpareThreads = 20;最小空线程数,这里是一直会运行的线程

与压缩有关的配置,若对代码进行了动静分离,静态页面和图片等数据就不需要tomcat处理

  1. 通过修改Tomcat的运行模式
    BIO,在tomcat8以下,默认使用BIO模式,对于每一个请求都要创建一个线程来进行处理,不适合高并发。
    配置信息是在conf/server.xml文件中,
    NIO,tomcat8以上的版本,默认使用NIO
    APR,全称 Apache Portable Runtime,是Tomcat生产环境运行的首选方式,如果操作系统未安装 APR 或者 APR 路径未指到 Tomcat 默认可识别的路径,则 APR 模式无法启动,自动切换启动 NIO 模式。所以必须要安装 APR 和 Native,直接启动就支持 APR,APR是从操作系统级别解决异步 IO 问题,APR 的本质就是使用 JNI 技术调用操作系统底层的 IO 接口,所以需要提前安装所需要的依赖提升 Tomcat 对静态文件的处理性能,当然也可以采用动静分离。

  2. 禁用AJP连接器
    AJP的全称 Apache JServer Protocol,使用 Nginx+Tomca t的架构,所以用不着 AJP 协议,所以把AJP连接器禁用。
    配置信息是在conf/server.xml文件中,将图中的部分进行注释。
    在这里插入图片描述

三、JVM调优

Tomcat 是运行在 JVM 上的,所以对 JVM 的调优也是非常有必要的。

找到 catalina.sh;调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"

  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat8 配置优化是提高生产环境性能的重要手段之一。以下是一些最佳实践和建议: 1. 调整 JVM 堆大小 JVM 堆大小是 Tomcat 性能的重要参数之一。在生产环境中,建议将最大堆大小设置为服务器物理内存的 70% 到 80%。 2. 启用压缩 Tomcat8 默认支持 GZIP 压缩,可通过在 server.xml 中添加以下代码启用: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json"/> ``` 3. 调整线程池 Tomcat8 默认使用的线程池是 NioEndpoint,可以通过修改 server.xml 文件中的以下参数进行优化: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool" maxThreads="500" minSpareThreads="50"/> ``` 其中 maxThreads 表示最大线程数,minSpareThreads 表示最小空闲线程数。 4. 启用缓存 Tomcat8 支持启用缓存,可以通过在 server.xml 文件中添加以下代码启用: ``` <Context cachingAllowed="true" cacheMaxSize="100000" cacheTTL="10000" cacheObjectMaxSize="1000"/> ``` 其中 cachingAllowed 表示是否启用缓存,cacheMaxSize 表示缓存最大大小,cacheTTL 表示缓存过期时间,cacheObjectMaxSize 表示缓存对象最大大小。 5. 关闭不必要的 Valve Tomcat8 默认启用了一些 Valve,如 AccessLogValve、RemoteAddrValve 等。在生产环境中,可以根据具体情况,关闭不必要的 Valve 以提高性能。 6. 使用 CDN 使用 CDN 可以将静态资源分发到不同的服务器上,减轻 Tomcat 的压力,提高性能。可以通过在 server.xml 文件中添加以下代码启用: ``` <Context docBase="webapps/myapp" path="/myapp"> <Resources className="org.apache.catalina.webresources.DirResourceSet" base="/var/www/myapp/static" webAppMount="/static"/> </Context> ``` 其中 base 表示静态资源所在路径,webAppMount 表示静态资源 URL 路径。 以上是一些 Tomcat8 配置优化的最佳实践和建议,可以根据具体情况进行调整以提高生产环境性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值