在 CentOS 上 Java 启动/配置慢,常见原因和对应解决办法如下,按出现频率给你排个序:
Java 默认用 /dev/random,熵不够时会卡住好几秒甚至几十秒。
Generating secure random number方案 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
Java 在连接、日志、认证时常做 DNS 反查。
vi /etc/hosts
加:
127.0.0.1 localhost your-hostname
查看主机名:
hostname
CentOS 默认 JVM 参数保守,容易:
-Xms512m -Xmx512m
-XX:+UseG1GC
Spring Boot 示例:
java -Xms512m -Xmx512m -XX:+UseG1GC -jar app.jar
iostat -x 1
/tmp 单独挂载setenforce 0
如果变快了:
vi /etc/selinux/config
SELINUX=disabled
老 JDK(8u 早期)在 CentOS 7 上明显慢。
# 1. 随机数
cat /proc/sys/kernel/random/entropy_avail
# 2. hosts
hostname && cat /etc/hosts
# 3. JVM 参数
ps -ef | grep java
如果你能告诉我:
我可以给你精准一条命令解决。