首页主机资讯weblogic在centos上如何进行性能调优

weblogic在centos上如何进行性能调优

时间2025-11-28 12:02:03发布访客分类主机资讯浏览434
导读:CentOS 上 WebLogic 性能调优实操指南 一 基线与环境准备 运行模式与基础检查 将域设置为生产模式(产品模式默认值更偏向性能,如执行队列线程数、JDBC 连接池容量等),并优先使用64 位 JDK。确保服务器时间同步、NT...

CentOS 上 WebLogic 性能调优实操指南

一 基线与环境准备

  • 运行模式与基础检查
    • 将域设置为生产模式(产品模式默认值更偏向性能,如执行队列线程数、JDBC 连接池容量等),并优先使用64 位 JDK。确保服务器时间同步、NTP 正常。
  • 资源与监控基线
    • 预留20%~30% 内存给操作系统与文件系统缓存;避免将堆占满物理内存。
    • 建立监控基线:CPU、内存、磁盘 I/O、网络、TCP 重传;WebLogic 控制台观察队列长度、线程使用、JDBC 活动连接等。常用工具:top、vmstat、iostat、netstat、jstat、jstack、jmap
  • 文件句柄与进程数
    • 提升用户级文件句柄与进程数上限,编辑 /etc/security/limits.conf
      * soft nofile 65535
      * hard nofile 65535
      * soft nproc  65535
      * hard nproc  65535
      
    • 在 systemd 服务单元中同步设置(如适用):LimitNOFILE=65535LimitNPROC=65535
  • 交换分区与内核网络
    • 建议配置适度大小的 swap(例如物理内存的约1.5 倍),避免 OOM Killer 过早终止 WLS;按需调整 vm.swappiness。示例:
      /swapfile none swap sw 0 0
      swapon -a
      
    • 可按需优化 TCP 队列与内核网络参数(如 net.core.somaxconnnet.ipv4.tcp_tw_reusenet.ipv4.tcp_fin_timeout),并结合压测验证。

二 JVM 与 GC 调优

  • 堆与元空间
    • 生产环境建议 -Xms 与 -Xmx 等值,避免运行期扩缩堆带来的抖动;堆占用一般不超过物理内存的70%,为 OS 与其他进程留足余量。
    • Java 8 使用Metaspace替代 PermGen;建议设置上限防止泄漏:
      -Xms4g -Xmx4g
      -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
      
  • 垃圾回收器选择
    • 吞吐量优先(多核、批处理倾向):-XX:+UseParallelGC -XX:+UseParallelOldGC
    • 低延迟优先(Web 交互倾向,Java 8+):-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=35
    • 超大堆与极低暂停(Java 11+):-XX:+UseZGC-XX:+UseShenandoahGC
  • 常用诊断与稳定性参数
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/weblogic/heapdumps
    -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/opt/weblogic/logs/gc_%t.log
    -XX:+DisableExplicitGC
    -XX:+UseCompressedOops
    -XX:+UseServer
    
  • 放置位置
    • 推荐在域目录的 bin/setDomainEnv.sh 中设置 USER_MEM_ARGS 或通过控制台“服务器 → 配置 → 服务器启动 → 参数”注入;二者并存时以控制台参数为准。

三 WebLogic 服务器与网络参数

  • 执行线程与工作管理器
    • 版本差异:
      • WLS 9/10 默认使用自调优线程池;如需固定上下限,可通过启动参数覆盖:-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500
      • WLS 12c+ 使用Work Manager 模型,优先按业务划分 Work Manager,再在控制台设置共享容量与队列阈值,避免单一队列过载。
    • 过载保护
      • 设置 Shared Capacity For Work Managers(默认 65536),当“排队+执行”请求超过阈值时,WLS 会拒绝低优先级请求,保护系统不被压垮。
  • 网络与 I/O
    • 调大 Accept Backlog(默认 50):在控制台“服务器 → 配置 → 调整”中提升,若仍出现 connection refused,可按约每次增加 25% 逐步调高,直至拒绝消失。
    • 启用本地 I/O(Native IO):控制台“服务器 → 配置 → 优化”勾选,提升高并发下网络吞吐与处理能力。
  • 会话与资源防护
    • 限制并发 HTTP 会话(示例将内存会话上限设为 12):
      <
          session-descriptor>
          
        <
          max-in-memory-sessions>
          12<
          /max-in-memory-sessions>
          
      <
          /session-descriptor>
          
      
    • 配置 Panic Action=Exit the server process,在出现 OOME 时自动退出并由 Node Manager 重启,降低故障扩散风险。

四 JDBC 与连接池调优

  • 容量与初始化
    • Initial Capacity 设为与 Max Capacity 相同,避免运行期扩容带来的连接风暴;容量上限需同时受数据库最大进程/会话数WLS 线程数约束。
  • 语句缓存与稳定性
    • 合理调大 Statement Cache Size(提升 PreparedStatement 命中);注意数据库端游标上限需 ≥ Statement Cache Size × Max Capacity,否则会报游标不足。
    • 出现连接泄漏或偶发挂起时,开启泄漏检测、测试连接、重试与超时等高级选项,并结合应用修复泄漏点。
  • 典型经验值
    • 4 核 CPU 为例,产品模式默认线程约 25/实例,可支撑约 100 线程;连接池最大值可先按“≥ 线程数”配置,再结合压测与数据库能力微调。

五 压测验证与常见症状处理

  • 压测与迭代
    • 使用 JMeter/Locust 等工具进行阶梯压测,每次仅调整1~2 个参数,对比RT、TPS、错误率、队列长度、GC 次数/停顿等指标,形成调优闭环。
  • 关键监控命令
    • 进程与 GC:jstat -gc < pid> 1000jmap -heap < pid> jstack < pid> ;必要时采集 thread dump/heap dump 分析阻塞与泄漏。
  • 常见问题速查
    • 高队列与“线程忙”日志:适度增加线程数或按业务拆分 Work Manager;同时优化慢 SQL/慢接口,避免仅靠加线程掩盖问题。
    • 启动或首次访问慢(熵不足):在 $JAVA_HOME/jre/lib/security/java.securitysecurerandom.source 改为 file:/dev/./urandom,加速初始化。
    • “连接被拒绝”:逐步增大 Accept Backlog,并核查防火墙/安全组/负载均衡连接空闲超时设置。
    • 文件句柄不足:确认 limits.conf 与 systemd 配置生效(ulimit -n),并检查应用是否泄漏文件/套接字。
    • OOM 与不稳定:开启HeapDumpOnOutOfMemoryError、设置 Panic Action=Exit 并配合 Node Manager 自动拉起,缩短恢复时间。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: weblogic在centos上如何进行性能调优
本文地址: https://pptw.com/jishu/758887.html
centos下weblogic如何实现负载均衡 centos jmeter如何进行性能调优

游客 回复需填写必要信息