史上最强Tomcat8性能优化

  • 执行器最佳实践

  • 连接器参数说明

    • 通用属性(加粗是重点)
  • 标准实现(加粗是重点)

  • 连接器最佳实践

  • 调整JVM参数进行优化

    • 设置并行垃圾回收器
  • 查看gc日志文件

  • 调整年轻代大小

  • 设置G1垃圾回收器

  • JVM配置最佳实践

  • 总结

授人以鱼不如授人以渔


本博客的目的不在于给出最佳配置,而是带领开发者,能够从实际情况出发,通过不断的调节tomcat和jvm参数,去发现吞吐量,平均响应时间和错误率等信息的变化,同时根据服务器的cpu和内存等信息,结合接口的业务逻辑,最好是测试使用率最高,并发最大,或者是最重要的接口(比如下单支付接口),设置最优的tomcat和jvm配置参数。

目的


通过Tomcat性能优化可以提高网站的并发能力。

Tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对Tomcat的优化也变得非常重要了。

对于Tomcat的优化,主要是从2个方面入手,一是Tomcat自身的配置,另一个是Tomcat所运行的jvm虚拟机的调优。

服务器资源


服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。硬件我们不说了,这个方面是钱越多越好是吧。

Tomcat配置优化


Linux环境安装运行Tomcat8

具体的安装步骤可以参考Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项

如果需要登录系统,必须配置tomcat用户,在安装完Tomcat后,进行如下操作

/conf/tomcat-users.xml文件中的<tomcat-users>标签里面添加如下内容

如果是tomcat7,配置了tomcat用户就可以登录系统了,但是tomcat8中不行,还需要修改另一个配置文件,否则访问不了,提示403,打开webapps/manager/META-INF/context.xml文件

<?xml version="1.0" encoding="UTF-8"?>

打开浏览器进行访问10.172.0.202:8080

在这里插入图片描述

点击“Server Status”,输入用户名、密码进行登录,tomcat/tomcat

在这里插入图片描述

登录之后可以看到服务器状态等信息,主要包括服务器信息,JVM,ajp和http信息

在这里插入图片描述

AJP连接

在服务状态页面中可以看到,默认状态下会启用AJP服务,并且占用8009端口。

在这里插入图片描述

什么是AJP

AJP(Apache JServer Protocol)

AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。

在这里插入图片描述

我们一般是使用Nginx+Tomcat的架构,所以用不着AJP协议,把AJP连接器禁用。

修改conf下的server.xml文件,将AJP服务禁用掉即可。

在这里插入图片描述

重启tomcat,查看效果。可以看到AJP服务已经不存在了。

在这里插入图片描述

执行器(线程池)

在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。

修改server.xml文件:

<Executor name=“tomcatThreadPool” namePrefix=“catalina-exec-”

maxThreads=“500” minSpareThreads=“50” prestartminSpareThreads=“true” maxQueueSize=“100”/>

<Connector executor=“tomcatThreadPool” port=“8080” protocol=“HTTP/1.1”

connectionTimeout=“20000”

redirectPort=“8443” />

保存退出,重启tomcat,查看效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值