温馨提示×

centos java配置慢怎么破

小樊
42
2026-10-08 17:42:48
栏目: 编程语言

在 CentOS 上 Java 启动/配置慢,常见原因和对应解决办法如下,按出现频率给你排个序:


一、最常见:随机数生成慢(尤其 Tomcat / Spring Boot)

Java 默认用 /dev/random,熵不够时会卡住好几秒甚至几十秒。

现象

  • 应用启动卡在
    Generating secure random number
  • Spring Boot / Tomcat 启动明显慢

解决

方案 1(推荐)

vi /usr/java/jdk/conf/security/java.security

改:

securerandom.source=file:/dev/urandom

方案 2(JVM 参数)

-Djava.security.egd=file:/dev/./urandom

方案 3(系统级,治本)

yum install -y haveged
systemctl enable haveged
systemctl start haveged

二、DNS 反向解析慢(SSH / Java 网络相关)

Java 在连接、日志、认证时常做 DNS 反查。

现象

  • 启动慢
  • 日志里卡在 host / ip 解析
  • 本地服务也慢

解决

vi /etc/hosts

加:

127.0.0.1   localhost your-hostname

查看主机名:

hostname

三、JVM 参数不合理(内存 / GC)

CentOS 默认 JVM 参数保守,容易:

  • Full GC 频繁
  • 启动慢

建议

-Xms512m -Xmx512m
-XX:+UseG1GC

Spring Boot 示例:

java -Xms512m -Xmx512m -XX:+UseG1GC -jar app.jar

四、磁盘 IO 慢(云服务器常见)

  • 低配云盘
  • 日志狂写

检查

iostat -x 1

优化

  • 日志级别调高(INFO → WARN)
  • 用 SSD
  • /tmp 单独挂载

五、SELinux / 防火墙影响

临时排查

setenforce 0

如果变快了:

vi /etc/selinux/config
SELINUX=disabled

六、Java 版本问题

老 JDK(8u 早期)在 CentOS 7 上明显慢。

建议

  • JDK 8 → 用 8u202+
  • 或直接上 JDK 11 / 17

七、快速自检清单(30 秒)

# 1. 随机数
cat /proc/sys/kernel/random/entropy_avail

# 2. hosts
hostname && cat /etc/hosts

# 3. JVM 参数
ps -ef | grep java

如果你能告诉我:

  • CentOS 版本
  • JDK 版本
  • 是 启动慢 还是 运行慢
  • 用的什么(Tomcat / Spring Boot / 普通 Java)

我可以给你精准一条命令解决。

0 踩