温馨提示×

weblogic性能调优在centos

小樊
39
2026-01-02 10:55:38
栏目: 智能运维

CentOS 上 WebLogic 性能调优实操清单

一 基线与环境准备

  • 明确目标:优先提升吞吐量、降低P95/P99 延迟、稳定CPU/内存/IO使用率。
  • 建立基线:用JMeter/LoadRunner压测,记录CPU、内存、网络吞吐、磁盘 I/O等关键指标,作为后续对比依据。
  • 运行模式:生产环境务必使用生产模式,关闭开发期特性(如自动类重载、频繁JSP检查)。
  • 架构与网络:高并发场景建议前置Nginx/Apache做反向代理与静态资源服务,启用异步非阻塞I/O,减轻 WebLogic 连接压力。

二 操作系统层优化

  • 文件描述符与进程数
    • 临时提升:ulimit -n 65535
    • 永久生效:编辑**/etc/security/limits.conf**
      • weblogic soft nofile 65535
      • weblogic hard nofile 65535
  • TCP/IP 与连接
    • 启用端口复用与快速回收:
      • net.ipv4.tcp_tw_reuse = 1
      • net.ipv4.tcp_fin_timeout = 30
    • 提升半连接/待处理队列:
      • net.core.somaxconn = 4096
      • net.ipv4.tcp_max_syn_backlog = 4096
    • 可选:根据带宽与延迟调优窗口与队列
      • net.ipv4.tcp_window_scaling = 1
      • net.core.netdev_max_backlog = 5000
  • 内存与虚拟内存
    • 降低换页倾向:vm.swappiness = 10(范围 0–100,越低越倾向使用物理内存)
    • 脏页刷写阈值(视负载微调):
      • vm.dirty_ratio = 20
      • vm.dirty_background_ratio = 10
  • 文件系统与挂载
    • 选择ext4/XFS,挂载时建议使用noatime减少元数据写入。
  • 服务与 SELinux
    • 关闭与业务无关的自启服务,释放资源。
    • SELinux 如影响性能或排障困难,可在测试环境评估permissive或按需策略调整。

三 JVM 层优化

  • 堆与元空间
    • 将**-Xms-Xmx设为相同值,避免运行期扩缩堆带来的抖动;例如:-Xms4G** -Xmx4G(请结合物理内存与容器/OS 预留)。
    • Java 8+ 使用Metaspace,建议:-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M
  • 垃圾回收器
    • 推荐G1 GC:-XX:+UseG1GC
    • 可按需设置停顿目标:-XX:MaxGCPauseMillis=200
  • 其他常用选项
    • 启用并行 GC 线程:-XX:ParallelGCThreads=N(N≈CPU 物理核心数)
    • 打印 GC 详情(仅调优期):-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/weblogic/logs/gc.log
  • 版本与 JDK 选择
    • 优先使用Oracle JDK 8/11/17的长期支持版本;避免过旧或已停止维护的 JDK。

四 WebLogic 服务层优化

  • 执行线程与工作管理器
    • 通过控制台或 WLST 调整执行线程数(Work Manager/线程池),以压测结果为准,避免“线程过多导致上下文切换激增”或“过少导致排队”。
  • 数据源与连接池
    • 合理设置初始/最大/递增连接数,启用验证连接超时回收失败重试等策略,避免连接泄漏与雪崩。
  • I/O 与协议
    • 条件允许时启用Native I/O提升网络吞吐与 I/O 效率。
  • 日志与开发特性
    • 减少System.out.println与冗余日志;生产模式关闭自动类重载/JSP 检查等开发期功能。

五 监控验证与回滚

  • 监控与诊断
    • JVM:jstat、jconsole、VisualVM 观察GC 次数/停顿/堆使用
    • 系统:top、vmstat、iostat 观察CPU steal、上下文切换、I/O 等待
    • WebLogic:控制台/JMX/OEM 监控线程池队列、JDBC 活跃/等待、吞吐与错误率
  • 验证与迭代
    • 每次变更先在测试环境验证,再灰度上线;对比基线指标评估收益与回退条件。
  • 变更与回滚
    • 关键配置(JVM、内核、线程池、连接池)变更前备份;出现异常按预案快速回滚

0