1. 堆内存基础配置
堆内存是WebLogic管理的核心内存区域,用于存储对象实例。通过调整-Xms(初始堆大小)和-Xmx(最大堆大小)参数,可避免频繁的内存扩容/收缩。建议将-Xms设置为-Xmx的1/4~1/3(如-Xms512m -Xmx1024m),防止堆内存过度波动导致性能下降。配置需修改WebLogic启动脚本(如startWebLogic.sh),通过JAVA_OPTS或MEM_ARGS环境变量设置。
2. 堆内存细分参数优化
进一步细化堆内存划分,提升内存使用效率:
-XX:NewRatio:设置新生代(Young Generation)与老年代(Old Generation)的比例(如-XX:NewRatio=2表示新生代占堆的1/3);-XX:SurvivorRatio:设置Eden区与Survivor区(S0/S1)的比例(如-XX:SurvivorRatio=8表示Eden区占新生代的8/10)。3. 垃圾回收(GC)策略调优
选择合适的GC算法可降低GC停顿时间,提升应用响应速度:
-XX:+UseG1GC启用;-XX:+UseParallelGC启用。-XX:MaxGCPauseMillis(目标最大GC停顿时间)调整GC行为。4. 内存池配置
WebLogic的内存池(Memory Pool)用于管理特定组件(如连接池、缓存)的内存分配,减少内存碎片。可通过config.xml文件配置内存池参数(如名称、容量、是否持续增长),例如:
<memory-management>
<memory-pool>
<name>MyMemoryPool</name>
<capacity>512m</capacity>
<持续增长>false</持续增长>
</memory-pool>
</memory-management>
合理设置内存池容量(避免过大导致内存浪费、过小导致频繁申请)可提升内存利用率。
5. 大页内存(Huge Pages)支持
对于内存密集型应用(如大型数据库连接池、缓存),启用大页内存可减少TLB(Translation Lookaside Buffer)缺失,提升内存访问效率。步骤如下:
cat /proc/meminfo | grep Huge;sudo sysctl -w vm.nr_hugepages=1024(1024个2MB大页,共2GB);-XX:+UseLargePages参数启用大页支持。6. 操作系统内核参数优化
调整Debian内核参数,优化内存管理行为:
vm.swappiness:控制内核将内存数据交换到Swap空间的倾向(0~100,默认60),降低该值(如vm.swappiness=10)可减少Swap使用,提升性能;/etc/sysctl.conf文件,添加vm.swappiness=10,然后执行sysctl -p使配置生效。7. 监控与诊断工具
通过工具实时监控内存使用情况,及时发现内存泄漏或瓶颈:
free -m(查看系统内存使用)、top/htop(查看进程内存占用)、vmstat 1(查看内存、Swap、IO等指标);jconsole(图形化监控JVM内存、线程、GC)、WebLogic管理控制台(查看域、服务器级别的内存使用统计)。Old Generation频繁Full GC,可增大-Xmx或优化代码减少长生命周期对象)。8. 开发与产品模式差异配置
WebLogic的开发模式与产品模式默认内存参数不同,需根据环境调整: