在 CentOS 上运行 WebLogic 出现“卡顿”,通常不是单一原因,而是系统资源、JVM配置、WebLogic参数、或代码问题叠加。下面按排查顺序 + 优化方案给你一个实用清单。
在服务器上执行:
top
看:
free -h
vmstat 1
看 si/so(swap)是否不为 0
iostat -x 1
看磁盘 IO 是否瓶颈
WebLogic 默认堆内存往往太小。
修改:
$DOMAIN_HOME/bin/setDomainEnv.sh
示例(8G内存机器):
USER_MEM_ARGS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export USER_MEM_ARGS
✅ 建议:
看 GC 日志:
jstat -gcutil <pid> 1000
如果:
说明 Full GC 频繁
✅ 解决:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
如果内存不够,系统用 swap,WebLogic 直接“假死”。
cat /proc/sys/vm/swappiness
建议:
sysctl vm.swappiness=10
或临时:
echo 10 > /proc/sys/vm/swappiness
WebLogic 控制台:
✅ 常见建议:
Initial Capacity: 10
Max Capacity: 50~100
WebLogic 日志、domain 在慢盘上会非常卡。
✅ 建议:
<log>
<file-name>logs/server.log</file-name>
<rotation-type>bySize</rotation-type>
</log>
ulimit -n
WebLogic 建议:
* soft nofile 65535
* hard nofile 65535
如果现在就卡:
server.log 有没有死锁 / OOM我可以直接给你一套可用的参数模板。