Tomcat(四)

Tomcat优化

JVM参数

编辑 TOMCAT_HOME/bin/catalina.sh 文件,找到 JAVA_OPTS 变量,并添加 JVM 参数。

  • -Xms:初始堆内存大小。
  • -Xmx:最大堆内存大小。
  • -XX:PermSize:永久代初始大小(Java 8 及以上版本使用元空间)。
  • -XX:MaxPermSize:永久代最大大小(Java 8 及以上版本使用元空间)。
  • -XX:MetaspaceSize:元空间初始大小(Java 8 及以上版本)。
  • -XX:MaxMetaspaceSize:元空间最大大小(Java 8 及以上版本)。
  • -XX:+UseG1GC:使用 G1 垃圾回收器。适合大内存应用。
  • -Xss:每个线程的栈大小。
bash 复制代码
# 修改或添加以下行
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseG1GC -Xss256k"

连接器优化

编辑 server.xml 。

  • protocol="org.apache.coyote.http11.Http11NioProtocol":使用 NIO 连接器,提高性能。
  • maxThreads:设置最大线程数,根据服务器性能调整。
  • acceptCount:设置接受队列的大小,当所有线程都忙时,新连接将被放入队列中等待。
bash 复制代码
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           acceptCount="100"
           maxThreads="500"
           connectionTimeout="20000"
           redirectPort="8443" />

调整线程池

编辑 server.xml

  • maxThreads:最大线程数。
  • minSpareThreads:最小空闲线程数。
  • maxIdleTime:线程的最大空闲时间。
bash 复制代码
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
          maxThreads="500" minSpareThreads="50"
          maxIdleTime="60000" />

启用压缩

编辑 server.xml

  • compression:启用压缩。
  • compressionMinSize:最小压缩大小。
  • noCompressionUserAgents:不压缩的用户代理。
  • compressableMimeType:可压缩的 MIME 类型。
bash 复制代码
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           compression="on"
           compressionMinSize="2048"
           noCompressionUserAgents="Gozilla,Travelscape"
           compressableMimeType="text/html,text/xml,text/plain,application/json" />
相关推荐
逸Y 仙X21 分钟前
文章二十七:ElasticSearch ES查询模板(Search Template)高效复用实战
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
二哈赛车手36 分钟前
新人笔记---Spring AI的Advisor以及其底层机制讲解(涉及源码),包含一些遇见的Spring AI的Advisor缺陷问题的解决方案
java·人工智能·spring boot·笔记·spring
AC赳赳老秦40 分钟前
接口测试自动化:用 OpenClaw 对接 Postman,实现批量回归测试、测试报告自动生成与推送
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
两年半的个人练习生^_^41 分钟前
Java日志框架和使用、日志记录规范
java·开发语言·开发规范
pq2171 小时前
最简单的理解synchronized锁升级
java
杨凯凡1 小时前
【032】排查入门:jstack、heap dump、Arthas 初识
java·开发语言·后端
pq2171 小时前
Spring FactoryBean源码解析
java·spring boot·spring
其实防守也摸鱼1 小时前
无线网络安全--实验 规避WLAN验证之发现隐藏的SSID
java·开发语言·网络·安全·web安全·智能路由器·无线网络安全
中科三方1 小时前
输入域名后无法访问?教你快速区分域名解析问题与服务器问题
运维·服务器
internet Boy1 小时前
桌面运维面试常见问题及标准答案(完整版)
运维