温馨提示×

WebLogic在CentOS怎么调优

小樊
43
2026-08-20 02:49:33
栏目: 智能运维

CentOS 上运行 WebLogic 时,调优通常围绕 操作系统、JVM、WebLogic 本身、数据库/网络 四个层面来做。下面给你一套生产环境常用、可落地的调优思路,从基础到进阶。


一、CentOS 操作系统层面调优

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

WebLogic 并发高时,默认 1024 很容易打满。

# 查看当前限制
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.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1

生效:

sysctl -p

3. 关闭或调整防火墙(视情况)

systemctl stop firewalld
systemctl disable firewalld

或只放行端口:

firewall-cmd --add-port=7001/tcp --permanent
firewall-cmd --reload

二、JVM 参数调优(最关键)

1. WebLogic JVM 参数位置

$DOMAIN_HOME/bin/setDomainEnv.sh

2. 推荐 JVM 参数(以 8GB 内存为例)

HotSpot JDK 8(最常见)

-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/app/logs/heapdump.hprof
-Xloggc:/app/logs/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps

建议

  • Xms = Xmx(避免动态扩容)
  • 生产环境优先 G1GC
  • Metaspace 不要无限增长

3. 大内存机器(16G+)

-Xms8g
-Xmx8g
-XX:+UseG1GC

三、WebLogic 本身调优

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

老版本(11g)

Services → Execute Queues
Thread Count: 100~400

新版本(12c+)

使用 Work Manager

  • Min Threads: 10
  • Max Threads: 200~400

✅ 不建议盲目调大,CPU 核数 × 50 是经验值


2. JDBC 数据源调优

Initial Capacity: 10
Max Capacity: 50~200
Min Capacity: 10
Statement Cache Size: 50~100

✅ 建议:

  • Max Capacity ≤ 数据库最大连接数
  • 启用 Test Connections on Reserve

3. 关闭不必要的服务

  • 关闭 IIOP(不用 EJB)
  • 关闭 JMS(不用消息)
  • 关闭 WebLogic 自带示例应用

4. 启用 Native IO

$WL_HOME/server/native/linux/x86_64

确认:

libmuxer.so

WebLogic 控制台:

Servers → Configuration → Tuning
✅ Enable Native IO

四、网络与应用层调优

1. 调整 Accept Backlog

Servers → Configuration → Tuning
Accept Backlog: 2048

2. HTTP 超时

Keep-Alive Timeout: 30s
Post Timeout: 30s

3. 使用 Nginx / F5 做前端

  • 反向代理 WebLogic
  • 减少直接暴露 7001
  • 静态资源交给 Nginx

五、监控与问题定位

1. 查看 GC

jstat -gcutil <pid> 1000

2. 查看线程

jstack <pid> > thread.txt

3. WebLogic 控制台

Monitoring → Threads
Monitoring → JDBC
Monitoring → JVM

六、常见性能问题速查表

问题 原因 解决
CPU 100% GC 频繁 调大堆、换 G1
连接数爆 JDBC 未释放 调连接池
响应慢 Accept Backlog 小 调大
OOM Metaspace 小 增大 Metaspace
启动慢 DNS 解析 /etc/hosts

七、推荐“标准配置模板”(8C16G)

-Xms8g
-Xmx8g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+HeapDumpOnOutOfMemoryError

线程池:200
JDBC:100
Accept Backlog:2048


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

  • WebLogic 版本(11g / 12c)
  • JDK 版本
  • 服务器内存 & CPU
  • 主要跑什么应用(EJB / Spring / 纯 Web)

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

0