温馨提示×

CentOS下WebLogic如何调优

小樊
43
2026-08-04 21:50:45
栏目: 智能运维

CentOS 环境下对 WebLogic Server 进行调优,通常从 操作系统、JVM、WebLogic 自身、应用、数据库 五个层面入手。下面给你一套比较系统、实战可用的调优思路(适用于 WebLogic 10g/11g/12c,CentOS 6/7/8 通用)。


一、CentOS 操作系统层面调优

1. 文件句柄数(非常重要)

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

# 查看当前限制
ulimit -n

# 临时修改
ulimit -n 65535

# 永久修改
vi /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

2. 内核参数优化

编辑:

vi /etc/sysctl.conf

推荐配置:

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.core.somaxconn = 4096
net.ipv4.ip_local_port_range = 1024 65535
vm.swappiness = 10

生效:

sysctl -p

3. 关闭不必要的服务

systemctl disable firewalld
systemctl disable selinux

(生产环境按安全策略调整)


二、JVM 调优(核心)

1. 选择合适的 JVM

  • JDK 6/7:CMS
  • JDK 8:G1(推荐)
  • JDK 11+:G1 或 ZGC

2. 常用 JVM 参数(示例)

JDK 8 + G1(推荐)

-Xms4g
-Xmx4g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/app/logs/heapdump.hprof

JDK 7 + CMS

-Xms4g
-Xmx4g
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+HeapDumpOnOutOfMemoryError

3. 修改 WebLogic JVM 参数

编辑:

$DOMAIN_HOME/bin/setDomainEnv.sh

示例:

USER_MEM_ARGS="-Xms4g -Xmx4g -XX:+UseG1GC"
export USER_MEM_ARGS

三、WebLogic Server 参数调优

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

WebLogic 12c+

使用 Work Manager(推荐)

  • 控制台:
Environment → Work Managers

示例:

  • Min Threads: 16
  • Max Threads: 400

2. 连接池(JDBC DataSource)

关键参数

参数 建议
Initial Capacity 10
Max Capacity 50~200
Min Capacity 10
Statement Cache Size 50
Test Connections On Reserve 勾选
Test Table dual / SQL

示例:

Initial Capacity: 20
Max Capacity: 100

3. Accept Backlog(连接队列)

Console → Servers → Configuration → Tuning

建议:

Accept Backlog = 1024

4. 关闭不必要的服务

  • IIOP(不用 CORBA 就关)
  • JMS(不用就关)
  • EJB(不用就关)

四、网络与应用层调优

1. 开启本地 I/O(Native IO)

Console → Servers → Configuration → Tuning

✅ 勾选 Use Native IO


2. 会话超时

Console → Web Applications

建议:

Session Timeout = 30 分钟

3. JMS 调优(如使用)

  • 使用文件存储
  • 异步投递
  • 控制消息大小

五、数据库层面(常被忽略)

  • 使用 PreparedStatement
  • 避免大事务
  • 索引优化
  • 连接泄漏检测

WebLogic 中:

Inactive Connection Timeout = 300

六、监控与问题定位

1. 监控工具

  • jstat -gc pid
  • jstack pid
  • jmap -histo pid
  • WebLogic Console
  • GC 日志分析(GCViewer)

2. OOM 排查

-XX:+HeapDumpOnOutOfMemoryError

七、典型调优建议总结

内存:Xms = Xmx
GC:JDK8 用 G1
线程池:不要无限放大
连接池:根据并发设置
OS:文件句柄 + TCP 参数
监控:GC + 线程 + 连接池


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

  • WebLogic 版本
  • JDK 版本
  • CPU / 内存配置
  • 并发用户数
  • 是否使用 JMS / EJB

我可以给你一套 针对你环境的精确调优参数

0