centos

如何优化CentOS上WebLogic的JVM参数

小樊
45
2025-11-01 21:49:00
栏目: 智能运维

一、JVM内存参数优化

1. 堆内存分配(核心参数)
设置-Xms(初始堆大小)与-Xmx(最大堆大小)为相同值(如-Xms4g -Xmx4g),避免堆内存动态调整带来的性能开销。建议值为物理内存的50%-70%(不超过8G),例如CentOS服务器物理内存为16G时,可设置为-Xms8g -Xmx8g

2. 元空间配置(Java 8+必备)
Java 8及以上版本需用**元空间(Metaspace)**替代永久代,设置-XX:MetaspaceSize(初始大小,如256m)和-XX:MaxMetaspaceSize(最大大小,如512m),避免元空间溢出(常见错误:java.lang.OutOfMemoryError: Metaspace)。

3. 新生代与老年代比例
通过-XX:NewRatio调整新生代(Young Generation)与老年代(Old Generation)的比例(如-XX:NewRatio=2表示新生代占堆的1/3)。若应用存在大量短期对象(如Web应用),可适当增大新生代比例(如-XX:NewRatio=1)。

4. Survivor区配置
-XX:SurvivorRatio设置Eden区与单个Survivor区的比例(如-XX:SurvivorRatio=8表示Eden区占新生代的8/10,每个Survivor区占1/10)。默认值(8)适用于多数场景,若对象晋升老年代过快,可适当增大该值。

二、垃圾回收器选择

推荐使用G1GC(Garbage-First Garbage Collector)
G1GC适用于大内存(≥4G)、多处理器服务器,通过将堆划分为多个Region实现并行回收,减少Full GC停顿时间。启用参数:-XX:+UseG1GC
可选优化参数:

三、操作系统级参数优化

1. 文件描述符限制
WebLogic处理高并发连接时需大量文件描述符,需调整系统限制:

2. TCP/IP参数优化
修改/etc/sysctl.conf,提升网络性能:

四、WebLogic特定配置优化

1. 线程池调优
根据CPU核心数调整线程池大小(推荐CPU核心数×50),避免线程过多导致上下文切换开销或过少导致请求排队:
编辑setDomainEnv.sh,添加:
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinPoolSize=500 -Dweblogic.threadpool.MaxPoolSize=3000"
或在WebLogic控制台→配置→线程池中修改。

2. 连接池优化
设置连接池InitialCapacity(初始容量)与MaxCapacity(最大容量)相同(如InitialCapacity=50MaxCapacity=200),避免运行时动态扩容的开销。通过WebLogic控制台→服务→数据源→高级选项调整。

3. 启用本地I/O
在WebLogic控制台→配置→优化中,勾选“Enable Native IO”(启用本地I/O),提升套接字复用效率,减少线程阻塞。

五、监控与持续调优

1. 使用监控工具

2. 日志与分析

注意事项

0
看了该问题的人还看了