后端岗位面试题更新 2026-08-05

请解释请求层性能优化的含义,并列举 Tomcat 中与性能相关的配置项有哪些。

后端开发性能优化技术原理

考察说明

考查对请求处理链路中性能优化概念的理解,以及对 Tomcat 核心性能配置的掌握。

回答思路

  1. 【回答框架 1】请求层性能优化指的是在请求进入服务端到返回响应的整个处理链路中,通过调整架构、参数或代码减少延迟、提高吞吐量。核心方向包括连接管理、线程调度、IO 模型、缓存和压缩等。
  2. 【回答框架 2】Tomcat 中与性能相关的配置主要位于 server.xml 的 Connector 和 Executor 元素。Connector 可配置 acceptCount、maxConnections、minSpareThreads、maxThreads、connectionTimeout、keepAliveTimeout、enableLookups、compression 等。
  3. 【回答框架 3】acceptCount 是等待队列长度,当请求数超过最大连接数时进入队列,默认 100;maxConnections 是最大连接数,NIO 模式下默认 10000;maxThreads 是处理请求的最大线程数,默认 200;minSpareThreads 是初始化时创建的最小空闲线程数。
  4. 【回答框架 4】线程数并非越大越好,需结合 CPU 核心数和任务阻塞时间估算,公式为 Ncpu × (1 + W/C),最终应以压测调整。connectionTimeout 控制等待请求超时,keepAliveTimeout 控制长连接空闲超时,enableLookups 设为 false 可避免 DNS 查询。
  5. 【回答框架 5】compression 开启后可压缩响应体,减少传输量,但会增加 CPU 开销。此外 JVM 参数如堆大小、GC 策略对 Tomcat 性能也有重要影响。配置优化需遵循容量规划与压测验证,避免盲目调大线程数。
  6. 【关键点 1】请求层优化涵盖连接、线程、IO、缓存和压缩等多个方面。
  7. 【关键点 2】Tomcat 性能关键配置在 Connector 和 Executor,如 maxThreads、acceptCount、maxConnections。
  8. 【关键点 3】maxThreads 默认 200,需根据资源状况调整,线程数公式仅作初始估算,最终以压测为准。
  9. 【关键点 4】enableLookups 设 false 避免 DNS 解析,compression 可减少带宽但增加 CPU。
  10. 【关键点 5】JVM 参数对 Tomcat 性能同样关键,需整体调优。
  11. 【易错点 1】将线程数设置得过大导致CPU上下文切换增加,反而降低吞吐量。
  12. 【易错点 2】忽略 keepAliveTimeout 与 connectionTimeout 的区别,导致长连接资源占用。
  13. 【易错点 3】认为开启压缩总是有益,未考虑 CPU 开销和已压缩内容(如图片)的重复压缩。