温馨提示×

ubuntu java运行慢怎么解

小樊
43
2026-09-07 05:38:27
栏目: 编程语言

在 Ubuntu 上 Java 运行慢,通常不是“Java 本身慢”,而是环境、参数或系统资源的问题。下面按最常见原因 → 对应解决办法给你一套排查清单。


一、先看是不是“启动慢”还是“运行慢”

1️⃣ 启动慢(java -jar 要等很久)

常见原因:

  • 随机数生成阻塞(/dev/random
  • 未指定 JVM 参数
  • 系统资源不足

✅ 解决:

java -Djava.security.egd=file:/dev/./urandom -jar app.jar

二、JVM 参数没调(非常常见)

2️⃣ 默认堆太小

Ubuntu 上 Java 默认堆可能只有几十 MB。

✅ 显式设置:

java -Xms512m -Xmx2g -jar app.jar

服务器建议:

-Xms2g -Xmx2g

三、使用了错误/过旧的 JDK

3️⃣ OpenJDK 版本太老

java -version

✅ 建议:

  • 服务器:OpenJDK 17 / 21(LTS)
  • 不要长期用 Java 8(除非被迫)

安装新 JDK:

sudo apt update
sudo apt install openjdk-17-jdk

切换 JDK:

sudo update-alternatives --config java

四、磁盘 / IO 问题(很容易被忽略)

4️⃣ 硬盘慢或磁盘满

df -h
iostat -x 1

✅ 如果是:

  • 机械盘 → 换 SSD
  • /tmp 满 → 清理或指定:
java -Djava.io.tmpdir=/data/tmp -jar app.jar

五、系统资源被限制

5️⃣ CPU 被限制(容器 / 云服务器)

nproc
top

✅ 如果是 Docker:

docker run -it --cpus=2 -m 4g ...

六、GC 导致卡顿(运行一阵子变慢)

6️⃣ 默认 GC 不适合服务

✅ 推荐使用 G1:

java -XX:+UseG1GC -Xmx2g -jar app.jar

高版本 Java 可试 ZGC:

-XX:+UseZGC

七、Ubuntu 本身性能问题

7️⃣ swappiness 太高(频繁 swap)

cat /proc/sys/vm/swappiness

✅ 改小:

sudo sysctl vm.swappiness=10

八、快速自检清单(30 秒版)

java -version
free -h
top
df -h

九、如果你愿意,我可以更精准帮你

你可以补充:

  1. Ubuntu 版本
  2. Java 版本
  3. Web 服务 / 脚本 / Spring Boot / Hadoop / Minecraft
  4. 慢在 启动 / 请求 / 计算

我可以直接给你一套可用的启动命令

0