在 Debian 上部署/启动 Tomcat “感觉很慢”,通常不是 Tomcat 本身的问题,而是 Debian 环境 + JVM + 系统配置 共同导致的。下面按常见原因从高概率到低概率说明,并给出对应解决办法。
这是 Debian + Tomcat 最经典、最容易被忽略的慢因。
Tomcat / JVM 启动时会大量使用随机数:
SecureRandom如果系统熵不足,会 卡在:
Creating SecureRandom instance...
可能卡 1~5 分钟。
✅ 检查:
cat /proc/sys/kernel/random/entropy_avail
如果长期 < 100,就是这个问题。
✅ 解决(推荐):
apt install haveged
systemctl enable haveged
systemctl start haveged
或 JVM 参数(不推荐长期使用):
-Djava.security.egd=file:/dev/./urandom
Debian 官方源中的 Tomcat 是 高度拆分包:
tomcat9tomcat9-commonlibtomcat9-java启动流程比官方压缩包慢,且:
✅ 对比:
Debian 默认 JVM 参数保守:
✅ 建议:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
首次启动会:
这在低配 VPS 上尤其明显。
Tomcat 启动时:
如果 /etc/hosts 没配好,会 超时等待。
✅ 检查:
hostname
hostname -f
✅ 修复:
vi /etc/hosts
添加:
127.0.0.1 your-hostname
Debian 安装 Tomcat 会带:
网络慢 → 安装慢(不是运行慢)
Tomcat 启动会:
HDD / 低 IOPS 云盘明显慢。
Debian Tomcat 使用:
Type=forking
systemd 会等子进程完全起来,命令行看起来“卡住”。
| 现象 | 原因 |
|---|---|
卡在 SecureRandom |
熵不足 |
| 卡 30s+ 才出日志 | DNS / hosts |
| apt 安装慢 | 网络 |
| 启动后响应慢 | JVM / 磁盘 |
| 命令行卡但网页能开 | systemd |
✅ 不用 apt 安装
wget https://archive.apache.org/tomcat/...
tar -xzf apache-tomcat-*.tar.gz
./bin/startup.sh
✅ 安装 haveged
✅ 配好 /etc/hosts
✅ 设置 JVM 参数
如果你愿意,可以告诉我:
我可以直接帮你定位到具体原因。