温馨提示×

WebLogic在CentOS为何启动慢

小樊
53
2026-08-04 21:44:41
栏目: 智能运维

WebLogic 在 CentOS 上启动慢,通常不是单一原因,而是 操作系统、JVM、WebLogic 本身配置 共同作用的结果。下面按 最常见 → 较少见 的顺序给你系统性的排查思路。


一、最常见原因(90% 都在这里)

1️⃣ entropy 不足(最常见、最经典

WebLogic / JVM 启动时会大量使用 随机数(/dev/random),而 CentOS 默认 entropy 很低,会直接卡死。

现象

  • 启动卡在:
    • Initializing WebLogic Server
    • Starting Derby
    • SecureRandom
  • 日志长时间无变化

验证

cat /proc/sys/kernel/random/entropy_avail

如果小于 200~300,基本就是它。

解决方案(强烈推荐)

修改 JVM 参数,使用 /dev/urandom

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

✅ 推荐加到:

setDomainEnv.sh

JAVA_OPTIONS="$JAVA_OPTIONS -Djava.security.egd=file:/dev/./urandom"

2️⃣ 主机名 / hosts 配置错误(非常常见)

WebLogic 启动时大量依赖 hostname 解析

现象

  • 启动卡在:
    • Server state changed to STARTING
  • 日志无报错但很慢

检查

hostname
hostname -f
cat /etc/hosts

正确示例

127.0.0.1   localhost
192.168.1.10 weblogic1

⚠️ 一定要保证:

  • hostname 能在 /etc/hosts 中解析
  • 不要只写 127.0.0.1

3️⃣ JVM 内存设置过大

现象

  • 启动卡在 JVM 初始化阶段
  • 系统负载高

检查

ps -ef | grep java

建议

  • 开发环境:
-Xms512m -Xmx1024m
  • 生产环境不要盲目给 8G、16G

二、WebLogic 本身原因

4️⃣ 管理服务器 + 被管节点一起启动

现象

  • 启动非常慢
  • 日志中大量连接 AdminServer 的失败

建议

  • 先启动 AdminServer
  • 再启动 Managed Server

5️⃣ 应用太多 / 自动部署

现象

  • 启动到一半突然变慢
  • 日志中出现大量应用加载信息

排查

domain/autodeploy

建议

  • 生产环境关闭自动部署
  • 减少启动时加载的应用数量

三、CentOS / Linux 层面的原因

6️⃣ DNS 配置异常

WebLogic 会尝试反向解析 IP。

检查

cat /etc/resolv.conf

建议

  • 能通的 DNS
  • 或干脆注释掉无用 DNS

7️⃣ SELinux 开启

检查

getenforce

建议(测试环境)

setenforce 0

8️⃣ 磁盘 IO 慢

检查

iostat -x 1

常见原因

  • 虚拟机磁盘
  • NFS 部署 WebLogic

四、快速定位方法(强烈推荐)

✅ 看启动卡在哪一步

tail -f domain/servers/AdminServer/logs/AdminServer.log

✅ 打开 JVM 调试

-verbose:gc

五、总结(速查表)

原因 是否常见 解决
entropy 不足 ⭐⭐⭐⭐⭐ urandom
hosts 配置错误 ⭐⭐⭐⭐ 修正 hosts
JVM 内存 ⭐⭐⭐ 调整内存
DNS ⭐⭐⭐ 检查 resolv.conf
SELinux ⭐⭐ 关闭
应用过多 ⭐⭐ 精简

如果你愿意,可以把下面信息发我,我可以 精准判断

  1. WebLogic 版本
  2. CentOS 版本
  3. 启动卡在哪一行日志
  4. entropy_avail 的值

我可以直接给你 最优参数配置

0