Tomcat学习积累笔记---Tomcat性能优化策略

Tomcat学习积累笔记—Tomcat性能优化策略

1.JVM内存模型回顾

Java 虚拟机的运⾏优化主要是内存分配垃圾回收策略的优化:
1.内存直接影响服务的运⾏效率和吞吐量
2.垃圾回收机制会不同程度地导致程序运⾏中断(垃圾回收策略不同,垃圾回收次数和回收效率都是不同的)

在这里插入图片描述

  1. 本地方法栈:C++,Native方法运行内容存放的栈区
  2. 程序计数器:对程序运行到那个位置进行记录,指向程序运行位置
  3. 1和2基本不需要改动
  4. 栈:存储的一些函数运行时的临时变量
  5. 方法区(元数据空间):这里面存储的一些元数据信息,指的是一些比较全局的东西(静态方法 ,变量 ,类加载器)
  6. 堆:JVM调优主要调整就是堆,堆分为年轻代和老年代
3. Java 虚拟机内存相关参数

在这里插入图片描述

4. 参数调整示例:

JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

配置如图,在Catalina.sh中:

在这里插入图片描述

5. 调整后查看可使⽤JDK提供的内存映射⼯具

在这里插入图片描述

2. 垃圾回收(GC)策略:主要是针对堆的

  1. 垃圾回收性能指标
    1. 吞吐量:⼯作时间(排除GC时间)占总时间的百分⽐, ⼯作时间并不仅是程序运⾏的时间,还包含内存分配时间。
    2. 暂停时间:由垃圾回收导致的应⽤程序停⽌响应次数/时间。

3. 垃圾收集器

  1. 串⾏收集器(Serial Collector)
    单线程执⾏所有的垃圾回收⼯作, 适⽤于单核CPU服务器
    工作流程:⼯作进程-----|(单线程)垃圾回收线程进⾏垃圾收集|—⼯作进程继续

  2. 并⾏收集器(Parallel Collector)
    ⼜称为吞吐量收集器(关注吞吐量), 以并⾏的⽅式执⾏年轻代的垃圾回收, 该⽅式可以显著降低垃圾回收的开销(指多条垃圾收集线程并⾏⼯作,但此时⽤户线程仍然处于等待状态)。适⽤于多处理器或多线程硬件上运⾏的数据量较⼤的应⽤
    工作流程:⼯作进程-----|(多线程)垃圾回收线程进⾏垃圾收集|—⼯作进程继续

  3. 并发收集器(Concurrent Collector)
    以并发的⽅式执⾏⼤部分垃圾回收⼯作,以缩短垃圾回收的暂停时间。适⽤于那些响应时间优先于吞吐量的应⽤, 因为该收集器虽然最⼩化了暂停时间(指⽤户线程与垃圾收集线程同时执⾏,但不⼀定是并⾏的,可能会交替进⾏), 但是会降低应⽤程序的性能

  4. CMS收集器(Concurrent Mark Sweep Collector)
    并发标记清除收集器, 适⽤于那些更愿意缩短垃圾回收暂停时间并且负担的起与垃圾回收共享处理器资源的应⽤

  5. G1收集器(Garbage-First Garbage Collector)
    适⽤于⼤容量内存的多核服务器, 可以在满⾜垃圾回收暂停时间⽬标的同时, 以最⼤可能性实现⾼吞吐量(JDK1.7之后)

4. 垃圾回收器参数

在这里插入图片描述

在bin/catalina.sh的脚本中 , 追加如下配置 :

JAVA_OPTS="-XX:+UseConcMarkSweepGC",配置垃圾回收机制

5. Tomcat 配置调优

1. Tomcat⾃身相关的调优
  1. 调整tomcat线程池:使所有tomcat共用一个线程池,定义好线程池,那么在Connector中就可以使用了
    在这里插入图片描述

  2. 调整tomcat的连接器:调整tomcat/conf/server.xml 中关于链接器的配置可以提升应⽤服务器的性能。
    在这里插入图片描述

  3. 禁⽤AJP连接器
    在这里插入图片描述

  4. 调整 IO 模式:Tomcat8之前的版本默认使⽤BIO(阻塞式IO),对于每⼀个请求都要创建⼀个线程来处理,不适合⾼并发;Tomcat8以后的版本默认使⽤NIO模式(⾮阻塞式IO)
    在这里插入图片描述

    当Tomcat并发性能有较⾼要求或者出现瓶颈时,我们可以尝试使⽤APR模式,APR(Apache PortableRuntime)是从操作系统级别解决异步IO问题,使⽤时需要在操作系统上安装APR和Native(因为APR原理是使⽤使⽤JNI技术调⽤操作系统底层的IO接⼝)
  5. 动静分离:可以使⽤Nginx+Tomcat相结合的部署⽅案,Nginx负责静态资源访问,Tomcat负责Jsp等动态资源访问处理(因为Tomcat不擅⻓处理静态资源)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值