温馨提示×

CentOS WebLogic内存如何设

小樊
38
2026-08-20 02:38:23
栏目: 智能运维

CentOS 上部署 WebLogic 时,内存设置主要通过 JVM 参数 来完成。下面按常见场景给你一个完整说明。


一、WebLogic 内存核心参数

WebLogic 运行在 JVM 上,内存主要通过以下参数设置:

-Xms   # 初始堆内存
-Xmx   # 最大堆内存
-XX:MetaspaceSize
-XX:MaxMetaspaceSize

推荐设置示例(生产环境)

-Xms2048m
-Xmx2048m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m

建议 -Xms-Xmx 设置成一样,避免堆动态扩容带来的性能抖动。


二、CentOS 上 WebLogic 内存设置位置

1️⃣ 通过 setDomainEnv.sh(最常用 ✅)

路径示例:

$WL_HOME/user_projects/domains/base_domain/bin/setDomainEnv.sh

编辑该文件:

vi setDomainEnv.sh

找到类似内容(不同版本略有差异):

USER_MEM_ARGS="-Xms256m -Xmx512m"

修改为:

USER_MEM_ARGS="-Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

保存后重启 WebLogic:

./stopWebLogic.sh
./startWebLogic.sh

2️⃣ 通过 startWebLogic.sh(不推荐)

也可以在启动脚本中直接加:

export JAVA_OPTIONS="-Xms2048m -Xmx2048m"

优先级低于 setDomainEnv.sh,不建议长期使用。


三、Admin Server 与 Managed Server 分别设置

如果是 生产环境,通常:

  • Admin Server:内存较小
  • Managed Server:内存较大

示例:

Admin Server

-Xms512m -Xmx1024m

Managed Server

-Xms4096m -Xmx4096m

可以在 setDomainEnv.sh 中根据 SERVER_NAME 判断:

if [ "$SERVER_NAME" = "AdminServer" ]; then
    USER_MEM_ARGS="-Xms512m -Xmx1024m"
else
    USER_MEM_ARGS="-Xms4096m -Xmx4096m"
fi

四、验证内存是否生效

1️⃣ 查看进程 JVM 参数

ps -ef | grep java

2️⃣ 使用 jcmd

jcmd <pid> VM.flags

3️⃣ WebLogic 控制台

Environment → Servers → <Server> → Monitoring → JVM

五、CentOS 系统层面注意事项

✅ 系统内存要足够

free -h

✅ 避免 swap 严重影响性能

swapon -s

✅ 文件描述符限制

ulimit -n

建议:

ulimit -n 65535

六、WebLogic 版本与 JDK 建议

WebLogic JDK 建议
12c JDK 8 稳定
14c JDK 11 Metaspace

七、常见问题

❌ 启动报错:Could not reserve enough space

原因:

  • -Xmx 设置超过系统可用内存

❌ GC 频繁

建议:

  • 增大堆
  • 使用 G1 GC:
-XX:+UseG1GC

八、总结一句话

CentOS 上 WebLogic 内存设置,核心就是修改 setDomainEnv.sh 里的 USER_MEM_ARGS

如果你能提供:

  • WebLogic 版本
  • JDK 版本
  • 物理内存大小
  • 是否使用 Managed Server

我可以帮你给出 最优内存配置方案

0