WebLogic在Ubuntu上的内存配置建议
导读:WebLogic在Ubuntu上的内存配置建议 一 核心原则与容量规划 为JVM堆保留不超过物理内存的70%,其余留给操作系统、文件缓存、容器/虚拟化开销与其他进程。生产环境将**-Xms与-Xmx设为相同值,避免运行期扩缩堆带来的抖动与...
WebLogic在Ubuntu上的内存配置建议
一 核心原则与容量规划
- 为JVM堆保留不超过物理内存的70%,其余留给操作系统、文件缓存、容器/虚拟化开销与其他进程。生产环境将**-Xms与-Xmx设为相同值,避免运行期扩缩堆带来的抖动与停顿。堆过小会频繁GC,过大则单次GC停顿变长且易触发操作系统换页。年轻代建议占堆的1/3~1/2**,并使用合适的GC策略控制停顿。元空间(Metaspace)默认无上限,建议设置上限以避免类加载泄漏导致的内存膨胀。对于32位JVM,堆通常限制在1.5~2GB;在Ubuntu上建议使用64位JDK以获得更大堆与更佳性能。
二 推荐的JVM参数模板
- Java 8(G1,低延迟优先,通用Web场景)
- 堆:例如**-Xms4g -Xmx4g**;年轻代:例如**-Xmn1536m**;Survivor区比例:-XX:SurvivorRatio=8
- GC:-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=35
- 元空间:-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
- 诊断与稳定性:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/opt/weblogic/logs/gc_%t.log -XX:+DisableExplicitGC
- Java 11+(ZGC,超大堆与极低停顿)
- 堆:例如**-Xms8g -Xmx8g**
- GC:-XX:+UseZGC(可选:-XX:+UseShenandoahGC)
- 元空间:-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
- 诊断与稳定性:同上
- 说明
- 年轻代示例值可按“堆的1/3~1/2”原则调整;若应用对象生命周期短、分配速率高,可适当增大年轻代或提高G1目标停顿时间。
- 若更关注吞吐而非延迟,可在Java 8选择并行GC:-XX:+UseParallelGC -XX:+UseParallelOldGC。
三 在Ubuntu上的配置方法与落地步骤
- 方式一(推荐):在域目录的启动脚本中设置
- 编辑:$DOMAIN_HOME/bin/setDomainEnv.sh
- 在文件末尾加入(示例为Java 8/G1):
- USER_MEM_ARGS=“-Xms4g -Xmx4g -Xmn1536m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m”
- 如需GC与诊断参数,可追加到USER_MEM_ARGS或JAVA_OPTIONS
- export USER_MEM_ARGS
- 方式二:通过管理控制台设置
- 登录控制台 → 环境 → 服务器 → 目标服务器 → 配置 → 服务器启动 → 参数,添加JVM参数
- 生效与验证
- 重启受管服务器/节点管理器,使用jps -v或ps -ef | grep weblogic确认JVM参数已生效
- 访问http://:/console,在“监视 → 性能”查看堆与非堆使用情况,确认GC日志与堆转储路径可写并已生成。
四 场景化配置示例
- 中小型应用(物理内存8GB,Java 8)
- JAVA_OPTIONS=“-Xms2048m -Xmx2048m -Xmn1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps”
- 大型高并发(物理内存32GB,Java 11+)
- JAVA_OPTIONS=“-Xms16g -Xmx16g -Xmn6g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g -XX:+UseZGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps”
- 说明
- 年轻代按堆的1/3~1/2取值;若观察到Young GC频繁或停顿偏长,可适当增大年轻代或调整G1的MaxGCPauseMillis/InitiatingHeapOccupancyPercent。
五 监控与系统层面的优化要点
- 监控与调优
- 关键指标:堆使用率建议长期低于70%;Young GC应快速且频率稳定;Full GC应极少;元空间使用不应持续增长。
- 方法:结合GC日志、堆转储与控制台性能页,先建立基准,再按“每次只变更一个参数”的策略迭代优化。
- Ubuntu系统层面
- 资源与稳定性:使用top/htop观察资源占用,必要时用cgroups限制WebLogic资源;关注OOM Killer,通过oom_score_adj降低关键进程被杀死的风险。
- 内存与I/O:在内存紧张环境下可启用zram/zswap缓解换页;用vmstat/iostat/sar持续监测负载与I/O;按需优化文件系统与内核参数(如fs.file-max与网络参数)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: WebLogic在Ubuntu上的内存配置建议
本文地址: https://pptw.com/jishu/762500.html
