Linux WebLogic性能优化技巧
小樊
42
2025-12-20 10:30:20
Linux WebLogic性能优化技巧
一 系统层优化
- 资源与监控
- 使用top/htop观察CPU、内存、负载;用vmstat、iostat、sar、dstat、iotop持续跟踪系统瓶颈;必要时用cgroups对CPU/内存做资源隔离,避免单实例拖垮整机。
- 文件描述符与内核
- 提升进程可打开文件数:在**/etc/security/limits.conf设置nofile**(如65535),并在**/etc/sysctl.conf提升fs.file-max**;执行sysctl -p使配置生效。
- 内存与Swap
- 适度降低vm.swappiness(如10)以减少换页;根据负载调整Swap大小与策略,避免频繁I/O抖动。
- I/O与调度
- 选择更契合业务的文件系统(如ext4/xfs);根据磁盘类型设置I/O调度器(如noop/deadline/cfq);用iostat定位读写热点与设备瓶颈。
- 网络栈
- 增大TCP缓冲:net.core.rmem_max / net.core.wmem_max;按需开启TCP_TW_REUSE、调整tcp_fin_timeout;在延迟敏感场景可启用TCP Fast Open(TFO);必要时用numactl/taskset做CPU亲和,减少上下文切换。
二 JVM与WebLogic核心参数
- JVM堆与GC
- 将**-Xms与-Xmx设为相同值(如-Xms8g -Xmx8g**)以避免运行期扩缩堆带来的抖动;优先选用G1 GC(如**-XX:+UseG1GC**),并结合应用停顿目标与吞吐目标做微调。
- 容器与平台
- 在setDomainEnv.sh或启动脚本中设置USER_MEM_ARGS注入JVM参数;生产模式建议开启生产模式并使用合适的JDK(HotSpot/OpenJDK)。
- 线程与执行模型
- 现代版本(如10.x)默认启用自调优执行队列(Work Managers),优先通过Work Managers配置请求调度与SLA,避免直接调老式的Execute Queues;如确需沿用8.1模型,可在config.xml中启用use81-style-execute-queues并显式创建队列。
- 连接与事务
- 合理设置JDBC连接池(初始/最小/最大连接、增量、超时、验证查询);将JTA事务超时设为业务可接受的合理值(如900秒),避免长事务占用资源。
三 并发与线程调优实践
- 观测指标
- 在控制台监控Queue Length(等待队列)与Stuck Thread(阻塞线程);当队列长期不为0或频繁出现“线程忙碌超时”告警,说明并发或程序处理存在瓶颈。
- 策略与取舍
- 盲目增大线程数会加剧上下文切换与内存占用,需结合CPU核数、GC停顿、下游(DB/外部服务)能力综合评估;优先通过应用优化与异步化缩短请求处理时间,其次再调整线程与队列策略。
四 监控与持续优化
- 系统与JVM监控
- 系统侧用top/htop、vmstat、iostat、sar、dstat、iotop巡检;JVM侧用jstat、jconsole、VisualVM观察GC次数/停顿/堆使用;WebLogic控制台观察线程、队列、数据源、JTA等关键指标。
- 日志与容量
- 使用journalctl、logrotate管理日志滚动与留存,避免磁盘被撑满;结合Prometheus + Grafana构建可视化监控与告警,形成容量与性能的闭环持续优化。
五 安全与变更流程
- 变更前在非生产环境充分压测与回放,逐步调参并保留基线;对JVM/内核/网络/WebLogic的变更遵循“小步快跑、可回滚”的原则,变更后持续观察24–72小时关键指标与错误日志,确认稳定后再推广到生产。