Tomcat调优

前言:tomcat调优总共分为两大类:1.tomcat自身调优 2.JVM调优

一、tomcat自身调优分为:

  1. 采用动静分离节约tomcat的性能
  2. 调优tomcat的线程池
  3. 调优tomcat的连接器
  4. 修改tomcat的运行模式
  5. 禁用AJP连接器    

二、JVM调优

      1. jvm调优内存

正文:详细介绍调优配置

一、tomcat自身调优

     1. 采用动静分离节约tomcat的性能

      静态资源如果让tomcat处理的话tomcat的性能会被损耗很多,所以我们一般都是采用:nginx+tomcat实现动静分离,让 Tomcat 只负责 jsp 文件的解析工作,nginx实现静态资源的访问。

      2. 调优tomcat的线程池

       打开tomcat的serve.xml,配置Executor

<Executor 
		name="tomcatThreadPool" <!-- 给执行器(线程池)起一个名字 -->
		namePrefix="catalina-exec-" <!-- 指定线程池中的每一个线程的name前缀 -->
        maxThreads="300"  <!-- 线程池中最大的线程数量 -->
		minSpareThreads="10" <!-- 线程池中允许空闲的线程数量(多余的线程都杀死) -->
		maxIdLeTime="60000"/> <!-- 一个线程空闲多久算是一个空闲线程 -->

        3. 调优tomcat的连接器Connector

        打开tomcat的serve.xml,配置Connector(如果采用nginx处理静态资源,那么配置中的压缩就没有必要使用)

<Connector 
		executor="scrapBT-ThreadPool" <!-- 指定这个连接器所使用的执行器(线程池) -->
		port="9001" <!-- 端口号 --> 
		protocol="HTTP/1.1"  <!-- http协议 -->
		maxThreads="300"  <!-- 表示最多同时处理 X 个连接。相当于最大线程数 -->
		maxQueueSize="3000" <!-- 最大的等待队列数,超过则拒绝请求 -->
		minSpareThreads="20" <!-- 初始化 X 个连接。最小空闲线程数,这里是一直会运行的线程 -->
		maxSpareThreads="300"  <!-- 表示如果最多可以有 X 个线程,一旦超过 X 个,则会关闭不再需要的线程。 -->
        connectionTimeout="10000" <!-- 连接超时时间 -->
        redirectPort="8443"  <!-- https请求端口跳转 -->
		URIEncoding="UTF-8" <!-- UTF-8 -->
		enableLookups=“false” <!-- 关闭 DNS 解析,减少性能损耗 -->
		minProcessors='5' <!-- 服务器启动时创建的最少线程数 -->
		compression="on" <!--  打开压缩功能 (on|off) -->
		compressionMinSize="2048" <!-- 启用压缩的输出内容大小,这里面默认为2KB -->
		noCompressionUserAgents="gozilla, traviata" <!-- 对于这里配置的浏览器,不启用压缩 -->
		compressableMimeType="text/html,text/xml,text/plain,text/css,application/javascript" <!-- 对哪些文件类型启用压缩 -->
		useSendfile="false" <!--  -->
		/>

        4. 修改tomcat的运行模式

        》Tomcat8以下版本,默认使用的就是BIO(阻塞式IO)模式(对于每一个请求都要创建一个线程来进行处理,不适合高并发)

        》Tomcat8以上版本,默认使用的就是NIO模式(非阻塞式Io)

        》APR(Apache Portable Runtime)(推荐使用)

        是Tomcat生产环境运行的首选方式

        如果操作系统未安装apr或者apr路径未指到Tomcat默认可识别的路径, 则apr模式无法启动自动切换启动nio模式。 所以必须要安装apr和native,直接启动就支持apr

        apr是从操作系统级别解决异步IO问题,apr的本质就是使用jni(java native interface) 技术调用操作系统底层的IO接口,所以需要提前安装所需要的依赖

        提升Tomcat对静态文件的处理性能,当然也可以采用动静分离

        5. 禁用AJP连接器 

Apache JServer Protocol 使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用

二、JVM调优

      1. jvm调优内存

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

  • 找到:linux找到catalina.sh windows找到catalina.bat

  • 添加的位置

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"

 -Xms Java 虚拟机初始化时堆的最小内存,一般与 Xmx 配置为相同值,这样的好处是 GC 不必再为扩展内存空间而消耗性能;

-Xmx Java 虚拟机可使用堆的最大内存。实际参数大小根据服务器配置或者项目具体设置。

如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论, ,咱们下期见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值