在 Ubuntu 上运行 Java 程序“慢”,原因可能非常多,下面按最常见 → 较少见给你系统梳理一下,并给出排查思路。
✅ 检查:
java -version
推荐:
openjdk-17-jdkJava 默认堆内存很小,频繁 GC 会非常慢。
✅ 典型现象:
✅ 解决示例:
java -Xms512m -Xmx2g -jar app.jar
Java 是 解释 + 编译混合运行:
✅ 正常情况,不算问题
✅ 检查:
iostat -x 1
Ubuntu 默认可能开 swap,内存不足时极慢。
✅ 查看:
free -h
swapon --show
✅ 建议:
✅ 检查:
top
htop
nproc
apparmorselinux✅ 可临时测试关闭验证
✅ 工具:
jstack <pid>
jstat -gc <pid>
✅ 测试:
time curl http://example.com
/dev/random 阻塞,导致 Tomcat / Spring 启动极慢。
✅ 解决:
java -Djava.security.egd=file:/dev/./urandom -jar app.jar
java -version
free -h
top
iostat -x 1
java -Xms512m -Xmx2g -Djava.security.egd=file:/dev/./urandom -jar app.jar
如果你愿意,可以告诉我:
我可以更精准帮你定位。