温馨提示×

weblogic在centos上卡怎么办

小樊
33
2026-07-21 09:36:39
栏目: 智能运维

WebLogic 在 CentOS 上卡顿 时,通常不是单一原因,建议按下面的思路由浅入深排查。下面给你一个实战型排查清单


一、先确认“卡”的表现

先判断是哪种卡:

表现 常见原因
应用访问慢或无响应 JVM 卡死、线程阻塞
启动特别慢 主机资源、DNS、hostname
控制台打不开 端口、防火墙、线程耗尽
SSH / 系统也卡 系统资源耗尽
GC 频繁 内存不足

二、最常见原因(80% 在这里)

1️⃣ JVM 内存不足(最常见)

现象

  • CPU 占用高
  • 日志里频繁 Full GC
  • 应用卡死

解决 编辑 setDomainEnv.sh

-Xms2048m
-Xmx2048m
-XX:MetaspaceSize=256m

不要设置超过物理内存 70%

检查:

jstat -gcutil <pid> 1000

2️⃣ hostname / DNS 解析导致启动卡死

典型症状

  • 启动卡在 Starting WebLogic
  • 日志停在 ServerSocketwait

解决

hostname
cat /etc/hosts

确保:

127.0.0.1   centos-hostname

⚠️ 很多 WebLogic 卡死都是 hostname 没解析


3️⃣ CentOS 系统资源耗尽

检查:

top
free -h
df -h

常见问题:

  • swap 没开(WebLogic 很依赖)
  • 磁盘满了(日志写不进去)

建议

swapon -a

4️⃣ 线程池 / 连接池耗尽

现象

  • 能用,但越用越慢
  • 日志出现 executeThread 阻塞

检查 config.xml

<max-threads-constraint>200</max-threads-constraint>

数据库连接池:

  • 初始连接数
  • 最大连接数
  • idle timeout

三、必做性能调优(非常关键)

✅ 关闭 IPv6

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

✅ JVM 参数优化(推荐)

-XX:+UseG1GC
-XX:MaxGCPauseMillis=200

四、快速定位卡点(强烈推荐)

1️⃣ 看线程栈

jstack <pid> > stack.txt

搜索:

  • BLOCKED
  • deadlock
  • waiting

2️⃣ 看 WebLogic 日志

$DOMAIN_HOME/servers/AdminServer/logs/*.log

重点:

  • BEA-000337
  • BEA-002311
  • IOException

五、WebLogic 在 CentOS 上常见“坑”

问题 解决
启动卡很久 hostname 解析
控制台打不开 防火墙
假死 JVM GC
磁盘写满 日志未清理
并发一高就卡 线程池/连接池

六、防火墙 & 端口

firewall-cmd --list-ports
firewall-cmd --add-port=7001/tcp --permanent
firewall-cmd --reload

七、如果你愿意,我可以更精确帮你

你可以直接贴:

  1. WebLogic 版本
  2. CentOS 版本
  3. 卡在哪一步(启动 / 运行中 / 访问)
  4. 日志最后 50 行

我可以 直接帮你定位具体原因并给出最小修改方案

0