首页主机资讯Linux下WebLogic内存配置技巧

Linux下WebLogic内存配置技巧

时间2025-12-08 23:59:03发布访客分类主机资讯浏览1493
导读:Linux下WebLogic内存配置技巧 一 核心原则与快速建议 堆大小建议设置为物理内存的1/2~2/3,生产环境将**-Xms与-Xmx设为相同,避免运行期扩缩堆带来的抖动;堆上限一般不超过物理内存的70%**,为操作系统和其他进程预...

Linux下WebLogic内存配置技巧

一 核心原则与快速建议

  • 堆大小建议设置为物理内存的1/2~2/3,生产环境将**-Xms-Xmx设为相同,避免运行期扩缩堆带来的抖动;堆上限一般不超过物理内存的70%**,为操作系统和其他进程预留资源。
  • 年轻代建议占堆的1/3~1/2(如用**-Xmn显式设置);可按需设置-XX:SurvivorRatio**(如8)。
  • Java 8及以下使用PermGen:设置**-XX:PermSize-XX:MaxPermSize**;Java 8及以上使用Metaspace:设置**-XX:MetaspaceSize-XX:MaxMetaspaceSize**(建议设置上限,防止泄漏)。
  • 32位JVM堆上限通常仅约1.5~2GB,生产优先使用64位JVM

二 配置方式与位置

  • 方式一(推荐):编辑域目录下的启动脚本**$DOMAIN_HOME/bin/setDomainEnv.sh**,在文件末尾追加或导出变量(如USER_MEM_ARGS),示例:
    USER_MEM_ARGS=“-Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m”
    export USER_MEM_ARGS
    如需按JDK厂商/位数区分,可在脚本中对WLS_MEM_ARGS_64BIT/WLS_MEM_ARGS_32BIT赋值。
  • 方式二:在WebLogic控制台配置。路径:环境 → 服务器 → 目标服务器 → 配置 → 服务器启动 → 参数,在“参数”字段直接写入JVM参数(适合统一管理多实例)。
  • 生效方式:修改后重启目标服务器实例。

三 常用JVM参数模板

  • Java 8(G1,平衡吞吐与停顿,通用Web场景) -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
    -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=35
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps
    -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/opt/weblogic/logs/gc_%t.log
    -XX:+DisableExplicitGC -XX:+UseCompressedOops -server
  • Java 8(Parallel GC,吞吐量优先) -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
    -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps
  • Java 11+(超低暂停,大堆/高并发) -Xms8g -Xmx8g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g
    -XX:+UseZGC
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps
    说明:年轻代可用**-Xmn-XX:NewRatio控制;并发标记/回收线程可按CPU核数设置(如ParallelGCThreads**、ConcGCThreads)。

四 Linux系统层面的配合

  • 适度降低vm.swappiness(如设为10),减少换页,优先使用物理内存:
    echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
  • 适度提高vm.dirty_ratio(如100),减少频繁回写抖动:
    echo ‘vm.dirty_ratio=100’ | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
  • 合理规划Swap(容量与策略),避免频繁交换导致性能劣化。
  • 适度提升文件句柄/进程数限制(如编辑**/etc/security/limits.conf**),避免“too many open files”。
  • 监控与诊断:用free -m、top观察系统内存;用**jstat -gc 1000、jmap -heap 、jstack **诊断JVM内存与线程。

五 监控与排错要点

  • 关键指标:堆使用率建议长期低于70%;Young GC应快速且频率稳定;Full GC应极少;Metaspace使用不应持续增长。
  • 故障取证:开启HeapDumpOnOutOfMemoryErrorGC日志,便于定位内存泄漏与GC瓶颈。
  • 调优步骤:先在测试环境建立基准,再每次仅调整1~2个参数并压测验证;生产持续监控并设置告警。
  • 常见误区:堆设过大导致系统内存紧张与换页;未设MaxMetaspaceSize致元空间无限增长;32位JVM硬顶约1.5~2GB堆。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux下WebLogic内存配置技巧
本文地址: https://pptw.com/jishu/766509.html
如何在Linux上监控WebLogic dhclient与bootp有何关系

游客 回复需填写必要信息