Ubuntu系统优化WebLogic内存使用的实践指南
在Ubuntu环境下优化WebLogic内存使用,需围绕JVM内存配置、系统内核调优、域配置文件调整三大核心方向展开,同时兼顾线程池、连接池等关联参数,以下是具体步骤:
JVM内存分配是WebLogic性能的基础,需根据应用负载合理设置堆内存与非堆内存参数。
/weblogic/Middleware/user_projects/domains/base_domain/bin),编辑setDomainEnv.sh文件(Ubuntu下为Shell脚本)。-Xms:初始堆内存(如-Xms2048m),建议与-Xmx一致,避免JVM动态扩容带来的性能损耗;-Xmx:最大堆内存(如-Xmx4096m),不超过物理内存的50%~60%(如服务器有8GB物理内存,建议-Xmx设为4~5GB)。-XX:PermSize(初始永久代内存,如-XX:PermSize=256m)和-XX:MaxPermSize(最大永久代内存,如-XX:MaxPermSize=512m);-XX:MetaspaceSize=256m(初始元空间内存)和-XX:MaxMetaspaceSize=512m(最大元空间内存)。if [ "${JAVA_VENDOR}" = "Sun" ] || [ "${JAVA_VENDOR}" = "Oracle" ]; then
export WLS_MEM_ARGS_64BIT="-Xms2048m -Xmx4096m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
export WLS_MEM_ARGS_32BIT="-Xms1024m -Xmx2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
fi
注:修改后需重启WebLogic使配置生效(
./stopWebLogic.sh && ./startWebLogic.sh)。
Ubuntu系统的内核参数会影响WebLogic的内存使用效率,需调整以下关键参数:
sudo sysctl -w vm.swappiness=10
永久生效需编辑/etc/sysctl.conf文件,添加vm.swappiness=10。/etc/security/limits.conf文件,添加:* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
使WebLogic进程可打开的文件数上限提升至65535,避免因文件描述符耗尽导致连接失败。除JVM内存外,域配置文件中的线程池、连接池参数也会间接影响内存使用:
setDomainEnv.sh文件,在JAVA_OPTIONS中添加:export JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinPoolSize=500 -Dweblogic.threadpool.MaxPoolSize=3000"
建议线程池大小设置为CPU核心数×50(如4核CPU设置为200~300)。注:连接池最大容量需小于数据库的最大并发连接数。
http://服务器IP:7001/console)进入“服务器→监控→内存”页面,查看“堆内存使用率”“元空间使用率”等指标,确认配置是否生效。top、htop命令实时查看WebLogic进程的内存占用;或通过jstat -gcutil <PID> 1000命令(每秒刷新一次)监控GC情况,若频繁Full GC,需适当增加-Xmx或优化应用代码。通过以上步骤,可有效优化Ubuntu系统下WebLogic的内存使用,提升应用运行效率与稳定性。需根据实际负载(如并发用户数、应用内存占用)动态调整参数,避免过度分配或不足。