Ubuntu WebLogic故障排查有哪些方法
小樊
44
2025-11-27 00:24:41
Ubuntu 上 WebLogic 故障排查方法
一 快速定位流程
- 查看 WebLogic 日志:优先检查域目录下的 logs/,尤其是 AdminServer.log、server.log、stdout.log、stderr.log,定位异常堆栈与报错时间点。
- 检查 系统资源:用 top、vmstat、iostat、free -h 观察 CPU、内存、磁盘 I/O 是否成为瓶颈。
- 核对 端口与连通性:确认 7001/7002 等监听端口未被占用且防火墙放行;必要时用 netstat/ss 排查端口冲突。
- 复核 配置与权限:检查 domain 配置、应用部署描述文件 的路径与参数;确认启动用户对 安装目录与域目录 具备读写/执行权限。
- 验证 数据库与网络:核对 JDBC/连接池 配置、数据库可用性与网络延迟;必要时做连通性与慢查询排查。
- 分析 JVM 与线程:在卡顿或高负载时采集 thread dump、heap dump,排查线程阻塞、死锁与内存问题。
二 常见症状与对策
- 启动失败或启动脚本卡住
- 检查 端口占用(如 7001/7002)并释放或更换端口;排查 配置文件路径/参数错误;确认 启动用户权限 与目录归属;查看 stdout/stderr 获取首条报错。
- 若启动阶段长时间无响应,优先看 系统资源(CPU/内存/磁盘)是否不足。
- 管理控制台登录很慢或首次进入卡顿
- 在 JVM 启动参数 增加:-Djava.security.egd=file:/dev/./urandom;或在 $JAVA_HOME/jre/lib/security/java.security 将 securerandom.source 改为 file:/dev/./urandom(注意使用 “/dev/./urandom” 形式以被 JVM 正确识别)。
- 运行中突然宕机或进入 FORCE_SHUTTING_DOWN
- 常见为 权限/属主 异常导致进程无法访问所需文件或目录;对 WebLogic 安装目录与域目录 执行属主校正(如:chown -R weblogic:weblogic <weblogic_dir>),再重启验证。
- 访问异常或偶发超时
- 复核 网络连通性、带宽与防火墙策略;同时检查 数据库性能与连接池 配置是否合理。
三 关键命令与操作清单
- 日志与控制台
- 查看日志:tail -f $DOMAIN_HOME/logs/AdminServer.log;同时关注 stdout.log/stderr.log。
- 访问控制台:浏览器打开 http://:7001/console。
- 端口与进程
- 查看端口占用:ss -lntp | grep -E ‘7001|7002’ 或 netstat -tulpen | grep -E ‘7001|7002’。
- 定位进程:ps -ef | grep java;必要时 kill -3 触发 thread dump(输出到 stdout)。
- 资源与限制
- 资源监控:top、vmstat 1、iostat -x 1、free -h。
- 文件描述符:ulimit -n(建议至少 4096);必要时在 /etc/security/limits.conf 提升 nofile。
- JVM 诊断
- 线程与堆:jstack 、jmap -heap ;必要时用 jmap -dump 生成 heap dump 后用 MAT/VisualVM 分析。
- 数据库与网络
- 连通性:ping、traceroute、nc -vz <db_host> <db_port>;
- JDBC/连接池:核对 URL、驱动、用户名/密码、最大连接数、超时 等关键参数。
四 预防与优化建议
- 启动参数与熵源
- 在 setDomainEnv.sh 的 JAVA_OPTIONS 中加入 -Djava.security.egd=file:/dev/./urandom,缓解控制台/启动阶段因 /dev/random 熵不足导致的卡顿。
- JVM 与内存
- 将 -Xms 与 -Xmx 设为相同值以减少堆扩展抖动;结合监控调整堆大小,避免 OutOfMemoryError 与频繁 Full GC。
- 文件描述符与系统参数
- 提升进程可打开文件数限制(如 ulimit -n 4096 或更高),并持久化到 limits.conf,减少 “too many open files”。
- 资源与部署
- 合理规划 CPU/内存/磁盘 I/O,分离 日志与数据 磁盘;优化 连接池 与 超时;对关键应用启用 健康检查与自动恢复。