centos上weblogic内存如何配置
小樊
45
2025-11-22 04:29:16
CentOS上WebLogic内存配置指南
一 配置方式与位置
- 修改域目录下的启动脚本:编辑域目录/bin/setDomainEnv.sh,在合适位置设置或覆盖MEM_ARGS(或USER_MEM_ARGS)。示例:
- 通用写法:USER_MEM_ARGS=“-Xms4g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m”
- 兼容写法(避免覆盖脚本内其他逻辑):在脚本中搜索“MEM_ARGS”相关段落,追加或替换对应位;若脚本使用 WLS_MEM_ARGS_64BIT/WLS_MEM_ARGS_32BIT,则修改对应变量。
- 控制台设置:登录WebLogic控制台 → 服务器 → 目标服务器 → 配置 → 服务器启动 → Java虚拟机,填写“初始堆大小”“最大堆大小”等参数,保存并重启生效。
- 注意:修改后需重启服务器;若脚本中已存在 USER_MEM_ARGS,通常以它为准,避免被 MEM_ARGS 覆盖。
二 关键JVM参数与取值建议
- 堆内存:设置**-Xms**(初始堆)与**-Xmx**(最大堆)。生产环境建议两者设为相同,减少GC波动;常见取值区间为物理内存的50%–70%,且不超过80%。示例:-Xms8g -Xmx8g。
- 元空间(Java 8+):使用**-XX:MetaspaceSize与-XX:MaxMetaspaceSize**控制元空间;若不显式设置,元空间会按需增长。示例:-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m。
- 线程栈:设置**-Xss**(每个线程栈大小),如:-Xss256k(根据应用线程深度与栈使用调整)。
- 垃圾回收:根据负载选择并行/并发收集器(如并行GC),并按CPU核数设置并行线程数(如**-XX:ParallelGCThreads**)。示例:-XX:+UseParallelGC -XX:ParallelGCThreads=8。
三 操作系统层面的配合
- 资源限制:避免系统级限制导致JVM无法申请足够内存。可在**/etc/security/limits.conf**为运行WebLogic的用户设置内存/虚拟内存上限,例如:
- weblogic soft as 16384
- weblogic hard as 16384
或在启动前用 ulimit -v 设置虚拟内存上限(单位为KB)。
- 交换与内核参数:适度降低vm.swappiness(如设为10)以减少换页;必要时配置或扩容swap,避免频繁交换导致性能抖动。
四 快速示例与验证
- 示例(单机单实例,物理内存16GB):在setDomainEnv.sh中设置
- USER_MEM_ARGS=“-Xms8g -Xmx8g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -Xss256k -XX:+UseParallelGC -XX:ParallelGCThreads=8”
- 验证步骤:
- 重启WebLogic后,登录控制台核对“服务器启动”页签中的JVM参数是否已生效。
- 在服务器上查看进程参数:ps -ef | grep weblogic | grep -E ‘Xms|Xmx|MetaspaceSize’
- 连接JVM监控(如jconsole/VisualVM)观察堆与非堆(元空间)使用情况,确认无频繁Full GC或内存溢出。