以下是Linux环境下WebLogic性能调优的核心要点:
一、系统级优化
- 资源限制调整
- 增加文件描述符限制:修改
/etc/security/limits.conf,设置nofile(如soft nofile 65535)。
- 优化内核参数:调整
/etc/sysctl.conf,如net.core.somaxconn=2048、vm.swappiness=10,减少交换分区依赖。
- 文件系统与I/O
- 选择高性能文件系统(如XFS),挂载时启用
noatime选项。
- 监控磁盘I/O,使用
iotop定位高负载进程,优化慢速磁盘。
二、JVM参数调优
- 内存配置
- 设置初始堆(
-Xms)和最大堆(-Xmx)为相同值(如-Xms2048m -Xmx2048m),避免内存碎片。
- Java 8及以上版本无需设置永久代参数,元空间默认动态管理。
- 垃圾回收器选择
- 推荐使用G1垃圾回收器(
-XX:UseG1GC),适合大内存场景,减少Full GC停顿。
三、WebLogic配置优化
- 线程池与连接池
- 线程池:根据CPU核心数设置
Thread Count(通常为CPU数×25,最大不超过50),避免线程过多导致上下文切换开销。
- 数据库连接池:配置合理的初始容量、最大容量及增长策略,启用连接泄漏检测。
- 关键参数优化
- 启用Native IO(
-Dweblogic.NativeIOEnabled=true),提升文件读写性能。
- 调整
StuckThreadMaxTime(默认600秒),避免长时间阻塞线程被误判为死锁。
四、应用与监控
- 应用层优化
- 减少Servlet重新加载频率,设置为
-1(生产环境禁用热部署)。
- 使用缓存(如Ehcache)减少数据库访问,优化长事务为短事务。
- 监控与调优工具
- 使用WebLogic控制台监控线程、连接池、JVM内存等指标,结合
top、vmstat定位瓶颈。
- 定期生成性能报告,通过JMX或第三方工具(如Prometheus)实现自动化监控。
五、注意事项
- 生产环境修改前需在测试环境验证,避免配置错误导致服务中断。
- 关闭非必要的服务(如SNMP、Telnet),减少安全风险和资源占用。
- 参考Oracle官方文档,根据具体版本调整参数(如WebLogic 12c+的配置路径可能不同)。
参考来源: