暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tomcat性能优化策略

IT那活儿 2023-06-30
583
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

概 述
在生产环境中,有线上基于java的tomcat应用,而tomcat的默认配置参数,都是设置的很低,尤其是内存和线程配置,如果生产环境中,使用这些默认配置,一旦业务请求量较大时,很容易造成性能瓶颈。

对于tomcat的性能优化,我们主要从内存、并发以及缓存这3个方面来着手,下面将一次介绍。


JVM内存配置优化
JVM内存配置的优化主要是对JVM堆内存的优化,堆内存分为年轻代、老年代、永久代这三种,具体详情可以观看JVM的官方文档,这里我就不一一介绍,配置Tomcat的JVM参数可以在Tomcat的启动脚本catalina.sh中设置JAVA_OPTS参数。
1. JAVA_OPTS常见参数说明
  • -server:表示启用JDK的Server模式;

  • -Xms:表示设置JVM初始堆内存大小;

  • -Xmx:表示设置JVM最大堆内存大小;

  • -XX:NewSize=:表示设置年轻代大小;

  • -XX:MaxNewSize=:表示设置年轻代最大内存大小;

  • -XX:PermSize=:表示设置永久代大小;

  • -XX:MaxPermSize=:表示设置永久代最大内存大小。
2. JVM内存分配举例
JVM大小设置与服务器的内存有着直接的关系,不能太大,也不能太小,如果服务器的内存大小为32G,可以设置为以下参数:
3. 堆内存大小的设置规则一般如下
1)将初始堆内存大小(Xms)和最大堆内存大小(Xmx)设置为彼此相等,可以减少GC次数和内存伸缩带来的频繁内存申请,从而减少一定的系统开销。
2)堆内存不能设置过大,虽然堆内存多可以减少GC次数,但是太多的堆内存也会导致垃圾回收的时间变长。

3)一般Xmx内存设置不超过物理内存的50%,最大不超过32G。


Tomcat并发优化和缓存优化
Tomcat并发与缓存优化主要对配置文件中的server.xml中的参数进行修改和配置。默认的server.xml文件的一些性能参数配置都很低,无法达到tomcat的最高性能。
1. Tomcat的常见并发参数说明
  • maxThreads:表示客户请求最大线程数。

  • minSpareThreads:表示Tomcat初始化时创建的Socket线程数。

  • maxSpareThreads:表示Tomcat连接器的最大空闲Socket线程数。

  • enableLookups:该参数设置为True,则表示支持域名解析,发请求转发到基于SSL的redirectPor端口上。

  • redirectPort:表示SSL的redirectPort端口号。

  • acceptAccount:表示监听端口队列最大数,满了之后会拒绝请求,不能小于maxSpareThreads。

  • connetctionTimeout:表示连接超时时间。

  • minProcessors:表示服务器创建时的最小处理线程数。

  • maxProcessors:表示服务器同时最大出力线程数。

  • URIEncoding:表示统一编码格式。

2. Tomcat缓存参数说明
  • compression:表示打开压缩功能。

  • compressionMinsize:表示启用压缩的输出内容大小,这里默认2KB。

  • compressableMimeType:表示压缩类型。

  • connectionTimeout:表示定义建立客户连接超时的时间,-1表示不限制。

3. Tomcat并发以及缓存配置举例

END


本文作者:事业二部(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论