Tomcat日志中线程池满通常表现为请求被拒绝或处理延迟高,可通过以下方式解决:
maxThreads:根据服务器CPU核心数和业务类型设置,CPU密集型建议设为CPU核心数×1~2,I/O密集型可设为CPU核心数×2~4。minSpareThreads和maxIdleTime:minSpareThreads建议设为maxThreads的10%~20%(如50~100),maxIdleTime保持默认1分钟或根据负载调整。acceptCount:设置为maxThreads的1~2倍(如100~200),避免无限制堆积导致内存耗尽。ulimit -n),确保支持高并发连接。关键参数参考(以server.xml配置为例):
<Executor name="tomcatThreadPool" maxThreads="500" minSpareThreads="50" maxIdleTime="60000" acceptCount="100"/>
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" />
调整前需备份配置文件,测试环境验证后再应用到生产环境。