Tomcat调优【精简版】

Tomcat调优

优化Tomcat内存分配

调整Tomcat启动脚本contalina.sh,设置tomcat启动时分配的内存很可使用的最大内存;

CATALINA_OPTS

调整Tomcat线程池

Tomcat默认使用的线程池:ThreadPoolExecutor

可以通过修改server.xml的 Connector 节点下的 maxThreads、minSpareThreads 和 acceptCount 参数来调整线程池的大小和性能。

情况举例:

情况1:接受一个请求,此时tomcat起动的线程数没有到达maxThreads,tomcat会起动一个线程来处理此请求。

情况2:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,tomcat会把此请求放入等待队列,等待空闲线程。

情况3:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,等待队列中的请求个数也达到了acceptCount,此时tomcat会直接拒绝此次请求,返回connection refused

maxThreads如何配置

1,计算型的任务多的话,减少线程数

2,io较多的,增加线程数

优化tomcat缓存

可以通过调整 server.xml 中的 Connector 节点下的 enableLookups、maxKeepAliveRequests 和 keepAliveTimeout 等参数来优化 Tomcat 的缓存设置,减少网络连接的开销。

配置文件模板:

配置tomcat内存:

catalina.sh

复制代码
#Make the umask available when using the org.apache.catalina.security.SecurityListener
 JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

配置线程数,压缩,缓存

server.xml

复制代码
  <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                redirectPort="8443"
                maxThreads="100"//处理任务的最大线程数
                minSpareThreads="8"//最小空闲线程
                acceptCount="80"//当最大线程数到了之后接受的请求进入队列的数量,超出这个数会被拒绝处理
                enableLookups="false"//关闭DNS查找(关闭DNS缓存)
                maxKeepAliveRequests="100"//长连接的请求数
                keepAliveTimeout="1000"//长连接的在线时长
                compression="on"//启用压缩
                compressionMinSize="2048"//压缩的大小
                   maxParameterCount="1000"
                   />

compressionMinSize="2048"启用压缩的输出内容大小,默认为2KB

●noCompressionUserAgents="gozilla,traviata" 对于以下的浏览器,不启用压缩 ●compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

可以配置一个线程池

引用线程池

复制代码
   <Connector port="8080" protocol="HTTP/1.1"
                executor="tomcatThreadPool"
                connectionTimeout="20000"
                redirectPort="8443"
                enableLookups="false"
                maxKeepAliveRequests="100"
                keepAliveTimeout="1000"
                compression="on"
                compressionMinSize="2048"
                   maxParameterCount="1000"
                   />

这样设置注意不要有重复的配置项

相关推荐
IT_Octopus3 小时前
IntelliJ 本地日志路径自定义:`-DLOG_PATH=./logs` 为什么总“不听话“
java·log4j·intellij-idea
长征coder4 小时前
【无标题】
java·性能优化
新时代牛马4 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
Bs_MoneyMagnet4 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
sunshine22 girl5 小时前
Java学习一 环境配置2 Idea的入门使用和maven配置,项目启动脚本配置
java·maven
有点。6 小时前
*C++哈夫曼树与哈夫曼编码
java·c++·servlet
CRMEB系统商城7 小时前
CRMEB标准版系统(Java)v3.1正式发布
java·spring·微信小程序·php·教育电商
写后端的胖头鱼7 小时前
【高频面试题】Java 基础类型 + 包装类 + String 互相转换
java·开发语言
weixin_460443567 小时前
企业考试系统从.NET迁移到Java+Linux:数据库迁移、接口兼容与灰度切换实践
java·煤矿培训考试系统·煤矿在线考试系统·煤矿安全培训·煤矿考试系统·一人一档
香菜TTT7 小时前
Redis的哨兵机制
java·数据库·redis