在 Debian 上 Tomcat 运行“慢”,通常可以从系统、JVM、Tomcat 配置、应用、网络几个层面排查。下面按常见原因给你一套实用思路。
可用工具初步判断:
top
htop
free -h
df -h
iostat -x 1
netstat -an | grep 8080
Tomcat 很吃内存
free -h
建议:
iostat -x 1
如果是云服务器:
ulimit -n
建议修改:
/etc/security/limits.conf
tomcat soft nofile 65535
tomcat hard nofile 65535
编辑:
/etc/default/tomcat9
# 或
/usr/share/tomcat9/bin/setenv.sh
示例(4G 内存):
JAVA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC"
关键点:
-Xms = -Xmx(避免频繁 GC)<Connector port="8080" protocol="HTTP/1.1"
maxThreads="200"
minSpareThreads="20"
acceptCount="100"
connectionTimeout="20000"
enableLookups="false" />
说明:
maxThreads:并发线程数enableLookups=false:禁止 DNS 反查(很重要)<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
生产环境:
autoDeploy=false检查:
slow query log
<AsyncLogger />
或用 logback 异步日志
cat /proc/sys/kernel/random/entropy_avail
如果很小(<1000):
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
✅ 内存是否够
✅ JVM 是否调过
✅ 是否 DNS 反查
✅ 是否有慢 SQL
✅ 是否日志过多
✅ 是否用了默认配置
如果你愿意,可以告诉我:
我可以直接帮你给一份针对性配置。