tomcat调优技巧

1 描述

Tomcat 调优大致分为两大类。

1.1 Tomcat的自身调优 

采用动静分离节约 Tomcat 的性能调整 Tomcat 的线程池调整 Tomcat 的连接器修改 Tomcat 的运行模式禁用 AJP 连接器 

1.2 JVM的调优 

调优Jvm内存 

2 Tomcat自身调优

2.1 采用动静分离 

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

2.2 调优Tomcat 线程池 

打开tomcat的serve.xml,配置Executor,相关参数说明如下。

 

name:给执行器(线程池)起一个名字;

namePrefix:指定线程池中的每一个线程的 name 前缀;

maxThreads:线程池中最大的线程数量,假设请求的数量超过了 750,这将不是意味着将 maxThreads 属性值设置为 750,它的最好解决方案是使用「Tomcat集群」。也就是说,如果有 1000 请求,两个 Tomcat 实例设置 maxThreads = 500,而不在单 Tomcat 实例的情况下设置 maxThreads=1000。

minSpareThreads:线程池中允许空闲的线程数量(多余的线程都杀死);

maxIdLeTime:一个线程空闲多久算是一个空闲线程;

其他的配置其实阅读官方文档是最好的「见参考链接」。

2.3 调优 Tomcat 的连接器 Connector 

打开 Tomcat 的 serve.xml,配置 Connector,参数说明如下。

executor:指定这个连接器所使用的执行器(线程池);

enableLookups=false:关闭 DNS 解析,减少性能损耗;

minProcessors:服务器启动时创建的最少线程数;

maxProcessors:最大可以创建的线程数;

acceptCount=1000:线程池中的线程都被占用,允许放到队列中的请求数;

maxThreads=3000:最大线程数;

minSpareThreads=20:最小空闲线程数,这里是一直会运行的线程;

与压缩有关系的配置:如果已经对代码进行了动静分离,静态页面和图片等数据就不需要 Tomcat 处理了,那么也就不需要配置在 Tomcat 中配置压缩了;

一个完整的配置如下。

2.4 通过修改 Tomcat 的运行模式 

BIO 

Tomcat8 以下版本,默认使用的就是 BIO「阻塞式IO)」模式。

对于每一个请求都要创建一个线程来进行处理,不适合高并发。

NIO 

Tomcat8 以上版本,默认使用的就是NIO模式「非阻塞式 IO」。

APR 

全称 Apache Portable Runtime,是Tomcat生产环境运行的首选方式,如果操作系统未安装 APR 或者 APR 路径未指到 Tomcat 默认可识别的路径,则 APR 模式无法启动,自动切换启动 NIO 模式。所以必须要安装 APR 和 Native,直接启动就支持 APR,APR是从操作系统级别解决异步 IO 问题,APR 的本质就是使用 JNI 技术调用操作系统底层的 IO 接口,所以需要提前安装所需要的依赖提升 Tomcat 对静态文件的处理性能,当然也可以采用动静分离。

2.5 禁用 AJP 连接器 

AJP的全称 Apache JServer Protocol,使用 Nginx+Tomca t的架构,所以用不着 AJP 协议,所以把AJP连接器禁用。

3 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"

调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。

参考


https://tomcat.apache.org/tomcat-8.0-doc/config/executor.html
https://tomcat.apache.org/tomcat-8.0-doc/config/index.html

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些调优 Spring Tomcat技巧和建议: 1. 使用最新版本的 Tomcat 和 Spring 框架以获得更好的性能和稳定性。 2. 使用连接池来优化数据库连接的使用。在 Spring 应用程序中,可以使用 Spring JDBC 或 MyBatis 等框架来配置连接池。 3. 调整 Tomcat 的线程池大小以在高负载下提高性能。可以通过调整 Tomcat 的 maxThreads 属性来配置线程池的大小。 4. 启用压缩来减少网络带宽使用和提高响应速度。在 Tomcat 中,可以使用 gzip 属性来启用压缩。 5. 优化 Tomcat 的缓存配置以减少请求响应时间。可以使用 Tomcat 的 cacheMaxSize 属性配置缓存大小和 maxCachedFileSize 属性来限制缓存文件的大小。 6. 使用反向代理服务器(如 Nginx 或 Apache)来减轻 Tomcat 服务器的压力。反向代理服务器可以缓存静态资源并负责负载均衡。 7. 为 Tomcat 程序设定合适的内存大小。当 Tomcat 内存不足时,应该考虑增大 Tomcat 的内存,但也不能过度分配内存。可以使用 JVM 参数调整 Tomcat 的内存大小。 8. 使用缓存技术来减轻数据库服务器的压力。可以使用缓存工具如 Redis、Memcached 等来缓存数据。 9. 对代码进行优化,确保代码不会导致 Tomcat 内存泄漏或死锁等问题。可以使用开发工具和测试工具进行检查和测试。 10. 监控 Tomcat 的性能和状态,以便及时处理性能问题或故障。可以使用监控工具如 JConsole、VisualVM 等来监控 Tomcat

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值