温馨提示×

WebLogic在CentOS如何调优

小樊
44
2026-07-09 15:46:53
栏目: 智能运维

CentOS 上运行 WebLogic 时,调优通常从 操作系统、JVM、WebLogic 本身、应用和数据库 几个层面进行。下面给你一套生产环境常用、可落地的调优思路,按优先级排列。


一、CentOS 操作系统层面调优

1. 文件描述符(非常重要)

WebLogic 会大量使用 socket 和文件句柄。

# 查看当前限制
ulimit -n

# 永久修改
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
vi /etc/sysctl.conf
fs.file-max = 6815744
sysctl -p

2. 内核参数优化(网络 & 内存)

vi /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

vm.swappiness = 10
vm.dirty_ratio = 10
sysctl -p

3. 关闭不必要的服务

systemctl disable firewalld
systemctl disable postfix

(生产环境防火墙建议用硬件或 iptables)


二、JVM 调优(核心)

1. 选择合适的 JDK

  • WebLogic 12c → JDK 8(推荐)
  • WebLogic 14c → JDK 11

查看:

java -version

2. 设置 WebLogic JVM 参数

编辑:

$DOMAIN_HOME/bin/setDomainEnv.sh

常用 生产环境 JVM 参数示例(JDK8)

export USER_MEM_ARGS="-Xms4g -Xmx4g -Xmn2g \
-XX:MetaspaceSize=512m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+ParallelRefProcEnabled \
-XX:+DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/opt/logs/heapdump \
-Xloggc:/opt/logs/gc.log \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps"

建议

  • Xms = Xmx(避免动态扩容)
  • 使用 G1 GC(WebLogic 默认 Parallel 已过时)
  • 开启 GC 日志

三、WebLogic 自身调优

1. 线程池(Execute Queue / Work Manager)

WebLogic 12c+ 使用 Work Manager

路径:

Console → Environment → Work Managers

推荐:

  • Min Threads: 16
  • Max Threads: 400(根据 CPU 核数调整)

2. JDBC 数据源调优(非常关键)

路径:

Services → Data Sources → Connection Pool

推荐配置:

参数 建议
Initial Capacity 10
Max Capacity 100~300
Min Capacity 10
Statement Cache Size 100
Test Connections On Reserve
Test Table DUAL / SQL

示例:

Max Capacity = CPU核数 × 50(经验值)

3. 关闭不必要的服务

Console →

  • 关闭 JTA(不用分布式事务)
  • 关闭 JMS(不用消息)
  • 关闭 EJB 容器(不用 EJB)

四、网络与 HTTP 调优

1. 调整 Accept Backlog

Servers → Configuration → Tuning
  • Accept Backlog: 4096
  • Login Timeout: 5000 ms

2. 启用 Native IO

Servers → Configuration → Protocols → HTTP
  • 勾选 Enable Native IO

五、应用层调优建议

  • 避免应用内 频繁创建线程
  • 减少 大对象、静态缓存
  • 使用 连接池 而不是每次 new Connection
  • 控制 Session 超时时间
<session-config>
  <session-timeout>30</session-timeout>
</session-config>

六、监控与压测

1. 必看指标

  • CPU
  • 内存
  • GC 频率 & 停顿时间
  • JDBC 活跃连接数
  • 线程池使用率

2. 工具

  • jstat -gc
  • jstack
  • nmon
  • WebLogic Console
  • Grafana + Prometheus(企业级)

七、典型生产环境推荐配置(示例)

配置项 推荐
OS CentOS 7.x
CPU ≥ 8 核
内存 ≥ 16G
WebLogic 12.2.1.4
JDK 1.8
GC G1
JVM 4G
数据源 200

八、调优顺序(经验)

  1. OS 参数
  2. JVM(内存 + GC)
  3. 数据源
  4. 线程池
  5. 应用代码

如果你愿意,可以告诉我:

  • WebLogic 版本
  • JDK 版本
  • CPU / 内存
  • 主要用途(接口 / 管理端 / 高并发)

我可以给你一份 完全针对你环境的调优参数清单

0