CentOS 上 WebLogic 启动慢的定位与优化
一、最常见根因 随机数生成阻塞
- 现象:启动或创建域时长时间卡住,常见于日志停在安全/随机数初始化阶段,甚至需要数分钟才继续。根因是 JDK 默认使用 /dev/random,在熵池不足时会阻塞;切换到 /dev/urandom 可显著改善。
- 快速验证:执行命令观察是否阻塞
- head -n 1 /dev/random
- 若命令迟迟不返回,多半是熵不足导致的随机数阻塞。
二、三种解决方案 按影响范围与安全性选择
三、若仍未改善 继续排查与优化
- JVM 内存与 GC
- 在 setDomainEnv.sh 中合理设置堆与GC参数,建议 -Xms 与 -Xmx 等值,减少运行期扩缩堆带来的停顿;可按CPU核数设置并行GC线程数,例如:
- USER_MEM_ARGS=“-Xms4096m -Xmx4096m -XX:+UseParallelGC -XX:ParallelGCThreads=8”
- export USER_MEM_ARGS
- 运行模式
- 将域切换为产品模式(生产环境推荐),默认队列与连接池等更偏向性能与稳定。
- 启动免密与自动化
- 在 servers/AdminServer/security/boot.properties 中配置用户名与密码,避免交互输入带来的脚本等待与人为延迟。
- 系统资源与基础环境
- 检查 内存/CPU/磁盘IO/网络 是否存在瓶颈;磁盘IO差或网络抖动也会导致启动阶段显著变慢,必要时先做资源与IO优化。