Ubuntu上WebLogic内存配置建议
WebLogic的内存配置主要通过修改域目录下的setDomainEnv.sh文件(Ubuntu路径通常为/weblogic/Middleware/user_projects/domains/your_domain/bin/setDomainEnv.sh)实现,关键参数包括:
-Xms2048m),建议与-Xmx保持一致,避免JVM动态扩展内存带来的性能损耗;-Xmx4096m),64位系统下建议不超过物理内存的50%~60%(例如服务器有8GB物理内存,-Xmx可设置为4~5GB),防止内存溢出导致系统崩溃;-XX:MaxMetaspaceSize=512m),用于存储类元数据,建议设置为-Xmx的1/4~1/2。export WLS_MEM_ARGS_64BIT="-Xms4096m -Xmx4096m -XX:MaxMetaspaceSize=512m"
export WLS_MEM_ARGS_32BIT="-Xms2048m -Xmx2048m -XX:MaxMetaspaceSize=256m"
-Xmx最大值需预留足够内存给操作系统及其他进程(如数据库、监控工具),建议不超过物理内存的70%(例如16GB物理内存,-Xmx不超过11GB);-Xmx最大值不超过2GB(受JVM地址空间限制);-Xms1024m -Xmx2048m,重型应用(如大型企业级应用)需适当增大(如-Xms4096m -Xmx8192m)。若遇到java.lang.OutOfMemoryError: PermGen space(Java 8及以下)或java.lang.OutOfMemoryError: Metaspace(Java 8及以上)错误,需调整非堆内存大小:
setDomainEnv.sh中添加-XX:MaxPermSize=512m(如上述示例);-XX:MaxMetaspaceSize=512m(元空间默认无大小限制,但需避免过度占用内存)。修改setDomainEnv.sh后,重启WebLogic Server,通过以下方式验证内存设置:
http://服务器IP:7001/console),进入“服务器→监控→内存”查看堆内存使用情况;jstat -gc <weblogic_pid>(需替换为WebLogic进程ID)查看GC情况及内存占用;/weblogic/Middleware/user_projects/domains/your_domain/servers/AdminServer/logs/AdminServer.log),确认内存参数已加载。setDomainEnv.sh),避免配置错误导致无法启动;-Dweblogic.threadpool.MinPoolSize/-Dweblogic.threadpool.MaxPoolSize)、数据库连接池(初始容量、最大容量)等参数综合优化,提升整体性能。