堆内存是WebLogic存储对象实例的核心区域,其大小直接影响应用性能。需通过调整JVM参数设置初始堆内存(-Xms
)和最大堆内存(-Xmx
),避免频繁扩容导致的性能波动。通常建议:
-Xms
)设置为最大堆内存(-Xmx
)的1/4~1/3(如-Xms512m
),减少启动时的内存分配开销;-Xmx
)设置为服务器物理内存的70%~80%(需预留内存给操作系统及其他进程),例如服务器有16GB物理内存,-Xmx
可设为10~12GB(-Xmx10240m
)。bin/startWebLogic.sh
脚本,添加export JAVA_OPTS="-Xms512m -Xmx1024m"
(根据实际需求调整数值)。通过调整新生代(Young Generation)与老年代(Old Generation)的比例、Eden区与Survivor区的比例,优化垃圾回收(GC)效率:
-XX:NewRatio
参数设置(如-XX:NewRatio=2
表示新生代占堆内存的1/3,老年代占2/3),适用于大多数应用;-XX:SurvivorRatio
参数设置(如-XX:SurvivorRatio=8
表示Eden区占新生代的8/10,每个Survivor区占1/10),减少Minor GC次数。选择合适的垃圾回收器可显著提升内存管理效率。常见推荐:
-XX:+UseG1GC
参数;-XX:+UseParallelGC
参数。启用内存池(Memory Pool)可减少内存碎片,提高内存分配效率。在WebLogic的config.xml
配置文件中添加内存池配置,例如:
<memory-management>
<memory-pool>
<name>MyMemoryPool</name>
<capacity>512m</capacity>
<持续增长>false</持续增长>
</memory-pool>
</memory-management>
其中capacity
设置内存池大小,持续增长
设为false
避免无限制扩容。
定期监控内存使用情况是优化内存管理的关键:
free -m
查看系统内存使用状况(总内存、已用、剩余、Swap使用量);使用top
/htop
找出占用内存高的进程(如WebLogic进程);http://服务器IP:7001/console
)的“监控”模块查看堆内存使用、GC次数及耗时;使用jconsole
/VisualVM
等工具分析内存泄漏(如对象堆积)。调整操作系统内核参数,配合WebLogic内存管理:
/etc/sysctl.conf
文件中的vm.swappiness
参数(取值0~100,值越小越倾向于使用物理内存),例如设置为vm.swappiness=10
(减少Swap使用,提升性能);dd if=/dev/zero of=/swapfile bs=1M count=2048
创建2GB Swap文件,然后mkswap /swapfile
、swapon /swapfile
启用)。开发模式与产品模式的默认参数不同,需根据环境调整:
Execute Queue
的max-threads
)默认为15,堆内存可设置较小(如-Xms512m -Xmx1024m
),满足快速开发和调试需求;-Xms2048m -Xmx4096m
),确保高并发下的稳定性。