温馨提示×

centos中weblogic为何启动慢

小樊
47
2026-09-30 12:39:34
栏目: 智能运维

在 CentOS 上 WebLogic 启动慢 是一个比较常见的问题,通常不是单一原因,而是多个因素叠加。下面按最常见原因 → 排查与解决办法来说明。


一、最常见原因(90% 的情况)

1️⃣ 随机数生成阻塞(非常常见)

WebLogic / Java 启动时会大量使用随机数(SSL、Session、加密等)。

CentOS 默认使用:

/dev/random

当熵池不足时,会阻塞等待,导致启动极慢。

✅ 表现:

  • 卡在 Starting WebLogic Server
  • 日志长时间无输出
  • CPU 不高,但就是不动

✅ 解决办法(推荐): 修改 setDomainEnv.sh 或 startWebLogic.sh:

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

或者全局修改 java.security:

vi $JAVA_HOME/jre/lib/security/java.security

securerandom.source=file:/dev/urandom

2️⃣ 主机名 / hosts 配置不正确

WebLogic 启动时会解析本机 hostname。

如果:

  • /etc/hosts 没有配置
  • hostname 无法解析

会导致 DNS 超时,非常慢。

✅ 检查:

hostname
hostname -i

✅ 正确示例 /etc/hosts:

127.0.0.1   localhost
192.168.1.10 weblogic1

⚠️ 不要只写 127.0.0.1 hostname


3️⃣ 防火墙 / SELinux 影响(隐式慢)

  • SELinux 开启
  • 端口监听被拦截
  • 内部通信超时

✅ 临时排查:

setenforce 0
systemctl stop firewalld

✅ 生产环境应正确放通端口,而不是长期关闭


二、JVM 与内存相关

4️⃣ 堆内存设置不合理

  • 堆太大(超过物理内存)
  • 或太小(频繁 GC)

✅ 建议:

-Xms1024m -Xmx1024m

查看:

ps -ef | grep java

5️⃣ GC 日志未开,问题难定位

建议开启:

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/logs/gc.log

三、WebLogic 自身原因

6️⃣ 部署应用过多 / 应用启动慢

  • EAR / WAR 启动时连接数据库失败
  • 初始化线程阻塞

✅ 排查:

  • 临时移除 domains/xxx/autodeploy
  • 或只启动 AdminServer,不启动被管节点

7️⃣ Node Manager 通信问题

  • AdminServer 等被管 Server
  • 网络不通、端口错误

日志常见:

Connection refused
Timeout waiting for server

四、系统层面

8️⃣ 磁盘 IO 慢

  • 虚拟机磁盘性能差
  • 日志写入阻塞

✅ 检查:

iostat -x 1

9️⃣ 时间不同步

NTP 未同步,证书、集群异常

date
timedatectl

五、快速自检清单 ✅

[ ] /dev/urandom 已配置
[ ] /etc/hosts 正确
[ ] hostname 可解析
[ ] 防火墙/SELinux 已排查
[ ] JVM 内存合理
[ ] 应用启动无阻塞

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

你可以贴出:

  1. WebLogic 版本(如 12c / 14c)
  2. CentOS 版本
  3. 启动卡住的最后几行日志

我可以直接帮你定位是哪一步慢。

0 踩