让你眼前一亮的3. Tomcat 性能调优 (值得收藏)

目录

  • 3. Tomcat 性能调优3.1 Tomcat 性能测试3.2 Tomcat 性能优化3.2.1Tomcat配置调优1.禁用AJP连接2.Connector 连接器的选择3.Executor线程池调整3.2.2 JVM参数调优1) JVM内存参数2) GC策略3.2.3 Tomcat架构调优动静分离:Tomcat集群:修改Tomcat默认端口号tomcat中部署项目的方式

3. Tomcat 性能调优

性能优化的三个指标

降低响应时间 :   

提高系统吞吐量(QPS) :  QPS (每秒请求量)     T(事务) PS (每秒处理事务的数量) 

提高服务的可用性:    

性能优化的原则

具体情况具体分析
积少成多

性能分析工具

JConsole  jvm性能监控平台:  主要监控 内存和CPU的情况

JMeter 分布式性能测试工具:   响应时间、吞吐量、错误率

性能优化测试指标

正确率、CPU占有率、QPS、JVM

3.1 Tomcat 性能测试

我们使用JMeter来进行测试:

3.2 Tomcat 性能优化

3.2.1Tomcat配置调优

1.禁用AJP连接

默认状态下,Tomcat会启动AJP服务,占用8009端口。

AJP是什么?有什么作用呢?

AJP(Apache JServer Protocol) 是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率。

Tomcat虽然是一个javaWeb服务器,可以对静态资源进行解析,但它最主要的作用是提供Servlet 和 Jsp容器,对静态资源的解析肯定不如一些专业的Http服务器 如:apache、nginx 。所以通常生产环境会把Tomcat和其他http服务器搭配使用, 所有请求都访问http服务器,如果访问的资源是Servlet或Jsp则http服务器将请求交由Tomcat处理,如果静态资源 http服务器直接处理, ajp就是apache服务器和tomcat服务器通信的主要协议,nginx 和 浏览器是不支持这个协议的,所以如果你不使用Tomcat和Apache服务器整合的话,这个AJP协议服务是没必要开启的。

ajp就是下面这行代码来配置,主要注释它就可以禁用AJP

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

2.Connector 连接器的选择

Tomcat 连接器的三种方式: bio、nio 和 apr,三种方式性能差别很大,apr 的性能最优, bio 的性能最差。而 Tomcat 7 使用的 Connector 默认就启用的 Apr 协议,但需要系统安装 Apr 库,否则就会使用 bio 方式。

BIO:

一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。

Tomcat7或以下,在Linux系统中默认使用这种方式。

NIO:

利用Java的异步IO处理,可以通过少量的线程处理大量的请求。

Tomcat8在Linux系统中默认使用这种方式。

Tomcat7必须修改Connector配置来启动:

APR:

即Apache Portable Runtime,从操作系统层面解决io阻塞问题。

Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。

Linux如果安装了apr和native,Tomcat直接启动就支持apr。

tomcat8 提供了nio2,效率要比nio快些,所以如果是tomcat8之前的版本推荐使用nio ,如果是tomcat8及之后的版本使用nio2

APR( Apache Portable Runtime) 提供卓越的伸缩性,更强的性能以及跟原生服务器技术更好的集成。

如果使用APR要保证1.配置文件中引入了APR的监听 2.服务器上安装APR的相关软件

linux配置APR:

安装依赖

yum install apr-devel yum install openssl-devel yum install gcc yum install make

安装APR包

进入 apache-tomcat-8.5.39/bin 执行命令 tar -xzvf tomcat-native.tar.gz

输入命令 cd
tomcat-native-1.2.21-src/native/

进入到native文件夹下

执行命令 ./configure && make && make install

安装后会出现这个界面,表示安装成功,并给出了安装后的目录位置

通过上图我们可以看到 我们还需要配置两个环境变量

输入命令使环境变量生效 source /etc/profile

修改server.xml 配置

启动tomcat查看日志

进入到 /logs目录 执行命令 tail -f -n 200 catalina.out

<Connector  executor="tomcatThreadPool"
            port="8080"
            protocol="org.apache.coyote.http11.Http11Nio2Protocol"
 
  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值