温馨提示×

centos上weblogic如何调优

小樊
39
2026-09-03 08:04:58
栏目: 智能运维

CentOS 上运行 WebLogic 时,调优通常分为 操作系统层、JVM 层、WebLogic 自身配置层 三个维度。下面按实战经验给你一套比较系统的调优思路。


一、CentOS 操作系统层调优

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

WebLogic 连接多时会报 too many open files

# 查看
ulimit -n

# 修改(永久)
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536

2. 内核参数优化

vi /etc/sysctl.conf

常见参数:

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10

生效:

sysctl -p

3. 关闭不必要的服务

systemctl disable firewalld
systemctl stop firewalld

二、JVM 调优(最关键)

WebLogic 本质是 Java 应用。

1. 修改 JVM 参数

路径:

$DOMAIN_HOME/bin/setDomainEnv.sh

示例(JDK 8 + 8G 内存):

JAVA_OPTIONS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export JAVA_OPTIONS

推荐:

  • -Xms = -Xmx(避免动态扩容)
  • 使用 G1 GC(JDK 8+)
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200

2. GC 日志(排查问题必备)

-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/logs/weblogic/gc.log

三、WebLogic 配置层调优

1. 线程池(Self-Tuning Thread Pool)

WebLogic 默认自动调节,但可限制:

  • Console → 服务器 → 配置 → 线程
  • 设置:
    • 最小线程数:CPU 核数
    • 最大线程数:200~500(视业务)

2. JDBC 连接池调优

最常见性能瓶颈

Console 路径:

服务 → 数据源 → 连接池

建议:

初始容量 = 最小容量 = 最大容量
最大容量 = 并发数 × 1.2

示例:

  • 并发 100 → 连接池 120

开启:

  • ☐ 测试保留连接
  • ☐ 回收超时连接

3. 启用 Native IO

Console → 服务器 → 配置 → 优化
☑ 启用本地 I/O

提升 socket 性能。


4. 关闭不必要的服务

  • EJB 容器(不用就关)
  • JMS(不用就删)
  • IIOP(不跨语言就关)

四、Web 层调优

1. 启用 Gzip

Console → 服务器 → 协议 → HTTP
☑ 启用 GZIP

2. 调整 Keep-Alive

超时:30s
最大请求:100

五、监控与问题定位

1. 查看线程死锁

jstack <pid> > thread.txt

2. 查看内存

jmap -heap <pid>

3. WebLogic 自带的

  • Console → 诊断 → 监视
  • WLDF(WebLogic Diagnostic Framework)

六、典型场景建议

场景 A:高并发接口

  • G1 GC
  • 线程池 300+
  • JDBC 连接池充足

场景 B:后台管理类系统

  • 默认线程池即可
  • 重点调 JDBC

场景 C:内存溢出

  • 增大 Metaspace
  • 检查 ClassLoader 泄漏

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

  • WebLogic 版本(12c / 14c)
  • JDK 版本
  • 业务类型(接口 / 管理后台 / ESB)
  • 服务器配置(CPU / 内存)

我可以给你 一份可直接用的参数模板

0