在Linux系统中配置WebLogic内存,主要涉及JVM堆内存和**元空间(Metaspace)**两大核心参数(Java 8及以上版本替代了传统的永久代):
-Xms512m),避免堆内存频繁扩容带来的性能损耗。-Xmx2048m),避免过度占用导致系统或其他应用内存不足。-XX:MaxMetaspaceSize=512m),避免元空间溢出(java.lang.OutOfMemoryError: Metaspace)。setDomainEnv.sh文件(关键配置文件)setDomainEnv.sh位于WebLogic域目录的bin子目录下(如/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh),是WebLogic启动时加载内存参数的主要脚本。
在文件中找到MEM_ARGS变量(或手动添加),设置堆内存和元空间参数,例如:
export MEM_ARGS="-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m"
说明:
-Xms1024m:初始堆内存1GB;-Xmx2048m:最大堆内存2GB;-XX:MaxMetaspaceSize=512m:元空间最大512MB(Java 8+)。-XX:PermSize和-XX:MaxPermSize(如-XX:PermSize=256m -XX:MaxPermSize=512m)。startWebLogic.sh文件部分场景下,需在startWebLogic.sh(位于域目录的bin子目录下)中添加JAVA_OPTIONS变量,覆盖默认内存设置,例如:
export JAVA_OPTIONS="$JAVA_OPTIONS -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m"
注意:若setDomainEnv.sh已配置MEM_ARGS,此步骤通常无需重复,避免参数冲突。
修改完成后,重启WebLogic服务器(./stopWebLogic.sh停止,./startWebLogic.sh启动),通过以下方式验证内存参数是否生效:
logs/server.log中是否有-Xms、-Xmx等参数的输出;jps找到WebLogic进程ID,再用jstat -gc <pid>查看GC内存详情。-XX:MaxMetaspaceSize替代-XX:MaxPermSize,否则会导致参数无效。cat /proc/meminfo | grep Huge)、设置大页数量(sudo sysctl -w vm.nr_hugepages=1024)、在startWebLogic.sh中添加-XX:+UseLargePages参数。