在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
參數。