- 首页 >
- 问答 >
-
智能运维 >
- WebLogic在Ubuntu上的故障排查步骤有哪些
WebLogic在Ubuntu上的故障排查步骤有哪些
小樊
42
2025-12-24 13:46:59
Ubuntu上WebLogic故障排查步骤
一 快速定位与通用检查
- 查看关键日志:优先检查 $DOMAIN_HOME/logs/server.log、AdminServer.log、启动脚本重定向的 stdout.log/stderr.log,从最近的错误堆栈定位模块与原因。
- 检查端口连通:确认监听端口(默认 7001/7002)未被占用且防火墙放行,例如:
ss -ltnp | grep 7001 或 nc -zv localhost 7001。
- 资源与进程:用
top/vmstat/iostat 观察 CPU/内存/磁盘IO,用 ps -ef | grep weblogic 确认进程状态与启动用户。
- 配置与权限:核对 config.xml 关键项(如 ListenPort)、启动脚本参数;确保 $DOMAIN_HOME 及子目录属主与启动用户一致。
- 网络连通:对客户端/数据库执行
ping、telnet/nc 测试连通性与端口可达性。
- 数据库连接:复核连接池参数、数据库可用性与网络延迟。
二 启动失败与卡住的专项排查
- 端口冲突:若端口被占用,终止占用进程或修改 config.xml 的 ListenPort 后重启。
- 残留锁文件:删除 servers//tmp/.lok,避免“Unable to obtain lock”导致无法启动。
- 诊断数据损坏:清理 servers//data/store/diagnostics/WLS_DIAGNOSTICS.DAT*,再启动(常用于受管服务器/AdminServer异常恢复)。
- 节点管理器异常:若 nodemanager.log 报 “Invalid state file format”,删除 servers//data/nodemanager/.state 后重启 Node Manager。
- 启动卡住/极慢:多为 JVM 随机数熵源 导致,设置
-Djava.security.egd=file:/dev/./urandom 或编辑 $JAVA_HOME/jre/lib/security/java.security 将 securerandom.source=file:/dev/./urandom。
- 权限问题:确保 域目录 与 JDK 对启动用户可读写,避免因权限不足导致初始化失败。
三 运行期性能与挂起问题
- 线程与锁:获取 thread dump(向 WebLogic 的 Java 进程发送 SIGQUIT/kill -3),间隔 10–20 秒 多次采集,分析 RUNNABLE/WAITING 堆栈定位死锁或阻塞。
- 内存与GC:开启 -verbose:gc,观察 GC 频率/停顿 与 OutOfMemoryError;必要时调整 -Xms/-Xmx 与 Perm/Metaspace 大小。
- 文件描述符:用
ulimit -n 检查进程可打开文件数,建议至少 4096,防止 “too many open files”。
- 系统资源:结合
top/vmstat/iostat 排查 CPU 饱和、内存吃紧、IO 瓶颈。
- 外部依赖:复核 JDBC/数据源、远程服务健康度与网络延迟。
四 实用命令清单
- 日志与输出:
tail -f $DOMAIN_HOME/logs/server.log
tail -f nohup.out stdout.log stderr.log
- 端口与连通:
ss -ltnp | grep 7001
nc -zv 127.0.0.1 7001
- 进程与资源:
ps -ef | grep weblogic
top, vmstat 1 10, iostat -x 1 10
- JVM 诊断:
- 采集线程:
kill -3 <pid>(输出到 server.out/stdout)
- GC 日志:启动时加入
-verbose:gc
- 文件描述符:
- Node Manager 快速复位:
- 删除 servers//data/nodemanager/.state 后重启 NM
五 预防与优化建议
- 固定并核对 ListenPort/SSL 端口,变更后同步更新防火墙与负载均衡配置。
- 规范目录权限:以专用 weblogic 用户运行,确保 $DOMAIN_HOME、$JAVA_HOME 权限一致。
- 启动参数基线:为生产设置 -Xms == -Xmx、合理的 Perm/Metaspace,并按需开启 GC 日志。
- 熵源优化:在 Ubuntu 上优先设置
-Djava.security.egd=file:/dev/./urandom,显著改善控制台/启动慢问题。
- 资源与健康基线:为 CPU/内存/IO/文件句柄 设定阈值告警,定期巡检 JDBC/连接池 与慢查询。