温馨提示×

怎样提高centos中weblogic效率

小樊
35
2025-12-29 13:22:38
栏目: 智能运维

CentOS 上提升 WebLogic 效率的实用清单

一 操作系统与网络调优

  • 提升文件描述符与进程数限制,避免“Too many open files”和线程创建失败:
    • 临时:ulimit -n 65535;永久:在 /etc/security/limits.conf 增加
        • soft nofile 65535
        • hard nofile 65535
      • weblogic soft nproc 2048
      • weblogic hard nproc 4096
  • 优化 TCP/IP 与端口范围,提升高并发连接能力:
    • net.core.somaxconn 65535
    • net.ipv4.ip_local_port_range 1024 65535
    • net.ipv4.tcp_max_syn_backlog 1024
    • net.ipv4.tcp_max_tw_buckets 5000
    • net.ipv4.tcp_tw_reuse 1
    • net.ipv4.tcp_fin_timeout 30
    • 使配置生效:sysctl -p
  • 降低 swap 倾向,减少抖动:
    • vm.swappiness 10
  • 可选:提升脏页写回阈值,降低抖动(需结合业务与存储评估)
    • vm.dirty_ratio 100
  • 存储与网络:优先使用 SSD/NVMe、合理配置 RAID;确保带宽与延迟满足业务峰值。

二 JVM 与 GC 调优

  • 堆大小与一致性:将 -Xms-Xmx 设为相同值,减少运行时扩缩容带来的停顿;通常不超过物理内存的 70%,并预留内存给 OS 与其他进程。
  • 垃圾回收器:Java 8 及以上优先 G1GC;示例:
    • -XX:+UseG1GC
    • -XX:MaxGCPauseMillis=200
    • -XX:InitiatingHeapOccupancyPercent=45
  • 元空间:限制并预分配,避免频繁扩容
    • -XX:MetaspaceSize=512m
    • -XX:MaxMetaspaceSize=1g
  • 线程栈:高并发可适当降低以减少内存占用
    • -Xss 256k–512k
  • GC 日志与诊断(便于定位瓶颈):
    • -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/weblogic/logs/gc.log
  • 放置位置:编辑域目录 bin/setDomainEnv.sh,在 JAVA_OPTIONS 中追加上述参数,重启生效。

三 WebLogic 服务器与数据源关键参数

  • 运行模式:生产环境启用 生产模式(Production Mode),获得更稳健的默认与监控能力。
  • 线程与网络:在控制台 Servers → Tuning 适度提升 Accept Backlog(如 300–500),缓解高并发下新连接排队。
  • 数据源连接池(JDBC):
    • 合理设置 Initial Capacity / Maximum Capacity / Capacity Increment(如 10 / 100 / 3),避免频繁创建/销毁连接。
    • 语句缓存:启用 Statement Cache,类型选 LRU,大小依应用 SQL 复用度调整;注意数据库对“打开游标”的限制,避免超限(示例:10 连接 × 2 实例 × 10 缓存 = 200 游标/库)。
    • 连接健康检查:启用 Test Reserved ConnectionsTest Frequency,并设置 Test Table Name;可配合 Seconds to Trust an Idle Pool Connection 减少测试开销。
    • 获取连接等待:开启 Connection Reserve TimeoutHighestNumWaiters,让请求在池满时可短暂等待,避免立即失败。
    • 泄漏回收:设置 Inactive Connection Timeout 自动回收长时间未归还的连接(建议值如 1800 秒;默认 0 表示关闭)。
    • 其他:可按需调整 重试创建频率登录延迟非活动连接超时;对 Oracle 等数据库可取消 Remove Infected Connections Enabled 以提升归还效率。

四 应用与部署配置

  • 关闭/放宽开发期特性:在控制台将 Servlet 重新加载检查 设为 -1JSP 页检查 设为 -1,减少文件扫描带来的开销。
  • 连接管理:确认应用按规范 关闭 Connection/Statement/ResultSet,避免连接泄漏放大池压力。
  • 缓存策略:合理使用应用级缓存(如热点数据、配置、会话),减少数据库往返。
  • 日志级别:生产环境将 日志级别 调高(如 WARN/ERROR),减少同步日志 I/O。

五 监控、压测与迭代

  • 监控手段:
    • OS:top/vmstat/ss -s/netstat -s 观察 CPU、内存、网络与套接字状态。
    • JVM:jstat -gc/-gcutil、jstack、VisualVM/JConsole 观察 GC 频率、停顿、线程与锁竞争。
    • WebLogic:控制台监控 线程池、数据源、JVM 指标;使用 WLST/JMX 采集与基线对比。
  • 调优流程:建立基线 → 设定单变量变更 → 压测(如 JMeter/Locust) → 复盘指标(RT、TPS、P95/P99、GC 停顿、错误率、DB 连接等待)→ 迭代参数 → 回归验证。
  • 变更规范:所有参数先在 测试环境 验证,再灰度/滚动发布;保留回滚方案与变更记录。

0