MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Tomcat性能优化攻略

2024-12-14 12:00 huorong 精选文章 5 ℃ 0 评论

概 述

在生产环境中,有线上基于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并发以及缓存配置举例

Tags:tomcat jvm参数设置

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言