Linux下WebLogic内存配置技巧
导读: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使用不应持续增长。
- 故障取证:开启HeapDumpOnOutOfMemoryError与GC日志,便于定位内存泄漏与GC瓶颈。
- 调优步骤:先在测试环境建立基准,再每次仅调整1~2个参数并压测验证;生产持续监控并设置告警。
- 常见误区:堆设过大导致系统内存紧张与换页;未设MaxMetaspaceSize致元空间无限增长;32位JVM硬顶约1.5~2GB堆。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下WebLogic内存配置技巧
本文地址: https://pptw.com/jishu/766509.html
