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

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

  1. 调优Tomcat的连接器Connector
    打开Tomcat的server.xml,配置Connector
    tomcat 如何进行优化?优化方案有哪些?_第1张图片
    tomcat 如何进行优化?优化方案有哪些?_第2张图片
    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"

你可能感兴趣的:(JVM优化,tomcat优化)