Debian 上 Tomcat 访问缓慢,通常不是单一原因,而是系统、Java、Tomcat 配置或应用本身共同导致。下面按最常见 → 较少见的顺序给你排查思路。
Debian 默认使用 /dev/random,熵不够时 Tomcat 启动和请求都会卡。
现象
解决
apt install haveged
systemctl enable haveged
systemctl start haveged
或 JVM 参数:
-Djava.security.egd=file:/dev/./urandom
Tomcat 默认堆很小。
检查
free -h
top
jstat -gcutil <pid> 1000
解决(示例)
JAVA_OPTS="-Xms512m -Xmx1024m"
现象
Timeout检查
server.xml 示例(重要参数):
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="200"
minSpareThreads="20"
acceptCount="100"
connectionTimeout="20000"
/>
常见问题:
maxThreads 太小protocol 用了旧 BIOTomcat 启动时会扫描所有应用。
解决
webapps 下无用的Debian 默认优先 IPv6。
解决
-Djava.net.preferIPv4Stack=true
检查
nginx -t
journalctl -u nginx
iostat -x 1
你可以按顺序确认:
havegedfree -h 是否内存足够jstat -gcutil 是否 GC 频繁server.xml 线程数你可以贴出:
server.xml 关键配置我可以直接帮你定位到具体哪一项。