CentOS环境下WebLogic内存配置技巧
定位配置文件:
CentOS系统中,WebLogic内存参数主要通过域目录下的bin/setDomainEnv.sh(Linux环境通用)文件配置,部分场景需调整startWebLogic.sh(启动脚本)或commEnv.cmd(JRockit JVM配置)。
设置核心内存参数:
在setDomainEnv.sh中修改MEM_ARGS变量,定义JVM堆内存及元空间(Java 8+)大小。关键参数说明:
-Xms:初始堆内存(如-Xms2048m),建议与-Xmx一致以避免动态扩容开销;-Xmx:最大堆内存(如-Xmx4096m),需预留系统及其他应用内存;-XX:MaxMetaspaceSize(Java 8+替代-XX:MaxPermSize):元空间最大大小(如-XX:MaxMetaspaceSize=512m)。export MEM_ARGS="-Xms2048m -Xmx4096m -XX:MaxMetaspaceSize=512m"。export MEM_ARGS="-Xms1024m -Xmx1024m -XX:MaxPermSize=512m"。-XX:MaxMetaspaceSize(如512m),避免元空间溢出。调整Linux内核参数:
vm.swappiness(默认60,建议10-30):减少系统对交换空间的依赖,提升物理内存利用率。执行echo 'vm.swappiness = 10' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p生效。vm.dirty_ratio(默认20,建议10-20),避免频繁写回导致IO瓶颈。执行echo 'vm.dirty_ratio = 10' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p生效。合理分配物理内存:
-Xms):建议为物理内存的10%-20%(如16GB物理内存设为2GB);-Xmx):建议为物理内存的50%-70%(如16GB物理内存设为8GB),需预留20%-30%给系统、内核及WebLogic自身进程。监控与调优:
free -m命令监控系统内存使用情况,重点关注available内存(可用内存);-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log参数),识别内存泄漏或GC瓶颈。-Xmx不宜超过物理内存的80%,否则可能导致系统频繁使用交换空间,严重影响性能;-XX:MaxMetaspaceSize替代-XX:MaxPermSize,避免参数无效;./stopWebLogic.sh && ./startWebLogic.sh)使参数生效;