当 WebLogic 在 CentOS 上卡顿 时,通常不是单一原因,建议按下面的思路由浅入深排查。下面给你一个实战型排查清单。
先判断是哪种卡:
| 表现 | 常见原因 |
|---|---|
| 应用访问慢或无响应 | JVM 卡死、线程阻塞 |
| 启动特别慢 | 主机资源、DNS、hostname |
| 控制台打不开 | 端口、防火墙、线程耗尽 |
| SSH / 系统也卡 | 系统资源耗尽 |
| GC 频繁 | 内存不足 |
现象
Full GC解决
编辑 setDomainEnv.sh:
-Xms2048m
-Xmx2048m
-XX:MetaspaceSize=256m
不要设置超过物理内存 70%
检查:
jstat -gcutil <pid> 1000
典型症状
Starting WebLogicServerSocket 或 wait解决
hostname
cat /etc/hosts
确保:
127.0.0.1 centos-hostname
⚠️ 很多 WebLogic 卡死都是 hostname 没解析
检查:
top
free -h
df -h
常见问题:
建议
swapon -a
现象
executeThread 阻塞检查 config.xml:
<max-threads-constraint>200</max-threads-constraint>
数据库连接池:
vi /etc/sysctl.conf
添加:
net.ipv6.conf.all.disable_ipv6 = 1
ulimit -n
建议:
ulimit -n 65535
永久:
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
jstack <pid> > stack.txt
搜索:
BLOCKEDdeadlockwaiting$DOMAIN_HOME/servers/AdminServer/logs/*.log
重点:
BEA-000337BEA-002311IOException| 问题 | 解决 |
|---|---|
| 启动卡很久 | hostname 解析 |
| 控制台打不开 | 防火墙 |
| 假死 | JVM GC |
| 磁盘写满 | 日志未清理 |
| 并发一高就卡 | 线程池/连接池 |
firewall-cmd --list-ports
firewall-cmd --add-port=7001/tcp --permanent
firewall-cmd --reload
你可以直接贴:
我可以 直接帮你定位具体原因并给出最小修改方案 ✅