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" />
調整前需備份配置文件,測試環境驗證后再應用到生產環境。