温馨提示×

centos中weblogic配置怎样优化

小樊
42
2025-12-05 22:29:23
栏目: 智能运维

CentOS 上 WebLogic 配置优化清单

一 系统层优化

  • 文件描述符与进程数
    • 提升进程可打开文件数,避免“too many open files”:
      • 临时:ulimit -n 65535
      • 永久:在 /etc/security/limits.conf 增加
          • soft nofile 65535
          • hard nofile 65535
  • TCP/IP 与网络栈
    • 减少连接回收时间、复用 TIME_WAIT 连接,缓解高并发短连接压力(/etc/sysctl.conf):
      • net.ipv4.tcp_tw_reuse = 1
      • net.ipv4.tcp_fin_timeout = 30
      • 执行 sysctl -p 使配置生效
  • 虚拟内存与 I/O
    • 降低 swap 倾向,优先使用物理内存:vm.swappiness = 10
    • 文件系统挂载建议使用 noatime(减少元数据写入),如 mount -o noatime /dev/sdX /web
  • 资源与权限
    • 关闭不必要的系统服务,释放内存与 CPU
    • SELinux 按业务需要设为 permissive 或 disabled(变更前评估安全影响)
    • WebLogic 以非 root用户运行,遵循最小权限原则

二 JVM 层优化

  • 堆与元空间
    • 将初始堆与最大堆设为相同,减少堆扩展带来的抖动:如 -Xms4g -Xmx4g
    • Java 8+ 使用 Metaspace 替代 PermGen:
      • -XX:MetaspaceSize=512m
      • -XX:MaxMetaspaceSize=1g
  • 垃圾回收器
    • 大堆、低停顿优先选用 G1 GC:
      • -XX:+UseG1GC
      • -XX:MaxGCPauseMillis=200
      • -XX:InitiatingHeapOccupancyPercent=45
  • 编译与栈
    • 启用分层编译提升热点路径性能:-XX:+TieredCompilation
    • 视应用栈深度调整线程栈:-Xss256k
  • GC 日志与诊断
    • 开启 GC 日志便于问题定位与回放:
      • -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/weblogic/gc.log
  • 显式 GC 与启动脚本
    • 避免应用误调用 System.gc() 影响停顿:-XX:+DisableExplicitGC
    • 将以上参数写入域环境脚本(如 setDomainEnv.sh)或启动脚本的 JAVA_OPTIONS

三 WebLogic 服务层优化

  • 运行模式与基础
    • 生产环境务必使用生产模式(Production Mode),关闭开发期特性
    • 如可用,启用 Native I/O 提升网络 I/O 效率
  • 线程池与工作队列
    • 现代版本使用自调优线程池;如需人工设定边界,可通过启动参数控制:
      • -Dweblogic.threadpool.MinPoolSize=100
      • -Dweblogic.threadpool.MaxPoolSize=500
    • 老版本或兼容模式可在控制台/配置中调整默认队列(如 weblogic.kernel.Default)线程数与 Stuck Thread 阈值,缓解阻塞与排队
  • 数据源与连接池
    • 合理设置初始/最大连接数、增量、超时与验证查询,避免连接风暴与泄漏
    • 结合数据库最大连接与业务峰值,控制总连接数不超过后端承载能力
  • 日志与应用特性
    • 降低日志级别与输出频率,避免频繁 I/O(如减少 System.out、优化 Log4j 配置)
    • 关闭/拉长开发特性:Servlet 重加载检查、JSP 检查间隔等

四 集群与前端架构优化

  • 反向代理与静态资源
    • 使用 Nginx/Apache 作为反向代理与静态资源服务器,启用长连接、压缩与缓存,减轻 WebLogic 负载
  • 集群与工作负载
    • 通过多个受管服务器分摊会话与计算,结合会话粘滞或集中式会话存储
    • 前端与负载均衡器合理设置连接复用与超时,避免后端线程被长连接占用
  • 监控与容量规划
    • 利用 WebLogic 控制台、WLST、JMX 持续观测线程队列、GC 停顿、连接池利用率与响应时间,按指标逐步调优

五 落地步骤与验证

  • 基线采集
    • 在非生产环境建立与生产一致的拓扑与数据量,采集基线指标:CPU、内存、I/O、网络、线程队列、GC 次数/停顿、DB 连接数、RT/吞吐
  • 分阶段变更
    • 按“系统层 → JVM → WebLogic → 前端/集群”的顺序小步变更,单变量调整,逐项验证
  • 关键指标与告警
    • 关注:Execute Threads 使用率、Queue Length、Stuck Thread 数、Full GC 次数/停顿、连接池等待、P95/P99 RT
    • 设置阈值告警与 GC 日志滚动归档,便于回溯
  • 回滚与复盘
    • 任何阶段出现稳定性或性能退化,立即回滚至上一个稳定版本,记录调优项与效果,形成复盘文档

提示

  • 以上参数为通用起点,需结合硬件规格、应用特征与数据库能力迭代压测与微调;变更前务必做好备份与回滚预案,并在灰度/准生产环境充分验证。

0