Spring Boot 默认内嵌 Tomcat,关键参数包括:最大连接数(默认8192/10000)、最大工作线程数(默认200)、最小空闲线程数(默认10)、连接等待队列长度(默认100),均通过配置文件调整。

Spring Boot 默认使用 Tomcat 作为内嵌 Web 容器,其性能表现高度依赖几个关键参数。这些参数不写死在代码里,而是通过 application.yml 或 application.properties 统一配置,修改后重启即生效。
最大连接数(max-connections)
它控制 Tomcat 在任意时刻能**接受并处理**的 TCP 连接总数,默认值因 Spring Boot 版本略有差异:2.7.x 起为 8192,早期版本多为 10000。这个值不是并发请求数,而是“已建立但未必正在处理”的连接上限。
- 超过该值后,操作系统仍可能暂存新连接——前提是 accept-count 有余量
- 实际建议值需结合服务器内存与网络负载,一般 4C8G 机器设为 8000–12000 较稳妥
- 配置示例:
server.tomcat.max-connections=10000
最大工作线程数(max-threads)
每个 HTTP 请求由一个独立线程处理,max-threads 决定了真正能并行执行业务逻辑的请求数上限,默认是 200。它和 CPU 核心数、I/O 阻塞程度强相关。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- CPU 密集型服务:建议设为
核数 + 1(如 4 核 → 5) - I/O 密集型服务(常见于数据库/HTTP 调用):可设为
核数 × 5~10(如 4 核 → 20~40;8 核 → 80~160) - 盲目调高(如设成 1000)易引发频繁 GC 和上下文切换开销,反而降低吞吐
- 配置示例:
server.tomcat.threads.max=400
最小空闲线程数(min-spare-threads)
Tomcat 启动时就预创建的空闲线程数量,默认 10。它的作用是避免突发流量来临时频繁创建线程,节省初始化延迟。
- 低峰期稳定运行的服务,保持默认即可
- 对响应时间敏感的高并发服务(如网关、API 中心),可适当提高到 20~50
- 该值不宜超过 max-threads 的 1/4,否则空闲线程占用过多内存(每个线程约 1MB 栈空间)
- 配置示例:
server.tomcat.threads.min-spare=30
连接等待队列长度(accept-count)
当所有工作线程都在忙时,新来的连接请求会先进入一个操作系统级队列,这个队列大小就是 accept-count,默认 100。它本质上是 Socket 的 backlog 参数。
- 该值不参与线程调度,只做连接缓冲;过大浪费内存,过小导致连接被内核直接拒绝(RST)
- 一般无需调整,默认 100 已覆盖绝大多数场景
- 注意:它和线程池无关,也不是 Tomcat 自己维护的“任务队列”
- 配置示例:
server.tomcat.accept-count=100
不复杂但容易忽略

















