温馨提示×

WebLogic在Ubuntu上的故障排查步骤有哪些

小樊
42
2025-12-24 13:46:59
栏目: 智能运维

Ubuntu上WebLogic故障排查步骤

一 快速定位与通用检查

  • 查看关键日志:优先检查 $DOMAIN_HOME/logs/server.logAdminServer.log、启动脚本重定向的 stdout.log/stderr.log,从最近的错误堆栈定位模块与原因。
  • 检查端口连通:确认监听端口(默认 7001/7002)未被占用且防火墙放行,例如:ss -ltnp | grep 7001nc -zv localhost 7001
  • 资源与进程:用 top/vmstat/iostat 观察 CPU/内存/磁盘IO,用 ps -ef | grep weblogic 确认进程状态与启动用户。
  • 配置与权限:核对 config.xml 关键项(如 ListenPort)、启动脚本参数;确保 $DOMAIN_HOME 及子目录属主与启动用户一致。
  • 网络连通:对客户端/数据库执行 pingtelnet/nc 测试连通性与端口可达性。
  • 数据库连接:复核连接池参数、数据库可用性与网络延迟。

二 启动失败与卡住的专项排查

  • 端口冲突:若端口被占用,终止占用进程或修改 config.xmlListenPort 后重启。
  • 残留锁文件:删除 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.securitysecurerandom.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
  • 文件描述符:
    • ulimit -n(查看/调整)
  • 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/连接池 与慢查询。

0