WebLogic在CentOS上的性能调优需围绕操作系统、JVM、WebLogic配置、数据库及监控五大维度展开,以下是具体优化措施:
文件描述符限制调整
WebLogic处理高并发时,需增加系统允许的单个进程打开文件数。临时生效:ulimit -n 65535;永久生效:修改/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535。
TCP/IP参数优化
修改/etc/sysctl.conf,优化以下参数以提升网络连接效率:
net.ipv4.tcp_tw_reuse = 1(重用TIME_WAIT连接,减少资源占用);net.ipv4.tcp_fin_timeout = 30(缩短TIME_WAIT状态的超时时间);net.core.somaxconn = 1024(增加TCP连接队列长度,避免连接拒绝);sysctl -p使配置生效。内核参数调优
vm.swappiness(降低内核使用交换空间的倾向,建议设为10~20):echo 'vm.swappiness = 10' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p;vm.dirty_ratio(控制脏页刷写阈值,建议设为10~20):减少频繁写回磁盘对性能的影响。堆内存配置
通过setDomainEnv.sh(位于域目录的bin文件夹)设置初始堆(-Xms)和最大堆(-Xmx)大小,建议两者一致(如-Xms4096m -Xmx4096m),避免堆内存动态调整带来的性能开销。JVM最大内存不应超过物理内存的50%~60%(如8G物理内存,最大堆建议不超过6G)。
垃圾回收器选择
推荐使用G1垃圾回收器(适用于大内存、低延迟场景),在JAVA_OPTIONS中添加-XX:+UseG1GC;若使用Java 7及以前版本,需设置永久代大小(-XX:PermSize=512m -XX:MaxPermSize=512m),Java 8及以上版本无需此设置。
JVM参数优化
/etc/security/java.security,将securerandom.source=file:/dev/urandom改为securerandom.source=file:/dev/./urandom,提升随机数生成性能(避免加密操作成为瓶颈)。线程池优化
weblogic.kernel.Default):通过WebLogic控制台(配置→服务器→线程池)调整线程计数(最小线程数)和最大线程数。建议设置为CPU核心数×50(如24核CPU,设置为1200),避免线程数过少导致请求排队或过多导致上下文切换开销。config.xml中设置self-tuning-thread-pool-size-min和self-tuning-thread-pool-size-max(如均设为400),让WebLogic根据负载自动调整线程数。连接池优化
登录WebLogic控制台(服务→数据源→选择数据源→连接池),调整以下参数:
初始容量:设置为与最大容量一致(如200),避免运行时动态创建连接的开销;最大容量:根据数据库承受能力设置(如200),避免连接数过多导致数据库性能下降。Accept Backlog调整
在config.xml中找到服务器节点的Tuning标签,修改AcceptBacklog参数(默认50),建议设置为1024或更高(根据并发连接数调整),避免因连接队列满导致“拒绝连接”错误。
启用本地IO
通过WebLogic控制台(配置→服务器→优化),勾选Enable Native IO,提升Socket读写的效率(减少线程阻塞)。
JDBC连接池调优
确保连接池的初始容量与最大容量一致,避免运行时频繁创建/销毁连接;设置合理的连接超时时间(如30秒),避免长时间占用连接。
数据库本身优化
innodb_buffer_pool_size,设置为物理内存的50%~70%);内置监控工具
使用WebLogic管理控制台(监视→服务器→性能)监控以下指标:
JMX与第三方工具
DEBUG级别),调整日志文件大小(如100MB/个),避免频繁写日志导致的I/O开销。以上优化措施需根据实际应用场景(如并发量、数据库负载、应用类型)进行调整,建议在测试环境验证后再应用于生产环境。