温馨提示×

centos怎样调优weblogic性能

小樊
45
2026-10-15 03:33:44
栏目: 智能运维

在 CentOS 上调优 WebLogic 性能,通常从操作系统层、JVM 层、WebLogic 自身配置、应用与数据库几个维度入手。下面给你一套比较实用、可落地的调优思路。


一、CentOS 操作系统层调优

1. 文件描述符(ulimit)

WebLogic 高并发时需要大量 socket 和文件句柄。

# 查看
ulimit -n

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

# 重新登录或重启

2. 内核参数优化(/etc/sysctl.conf)

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
vm.swappiness = 10
sysctl -p

3. 关闭不必要的服务

systemctl disable firewalld   # 如不在生产防火墙策略中
systemctl stop firewalld

(生产环境建议用 iptables 精确控制)


二、JVM 调优(最关键)

WebLogic 常用 JDK 8 + HotSpot,推荐 G1 GC(高版本 JDK 更推荐)。

1. 修改 setDomainEnv.sh

路径示例:

$DOMAIN_HOME/bin/setDomainEnv.sh

示例(JDK 8):

export JAVA_OPTIONS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/dump"

✅ 建议:

  • Xms = Xmx(避免动态扩容)
  • 堆内存不超过物理内存 70%
  • 开启 GC 日志
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/logs/gc.log

三、WebLogic 配置层调优

1. 线程池(Thread Pool)

WebLogic 9+ 使用自调优线程池,一般不建议写死。

如需调整:

Console → Server → Configuration → Tuning
- Initial Thread Count: 16
- Maximum Thread Count: 400(视 CPU 核数)

2. Accept Backlog

Server → Configuration → Tuning → Accept Backlog = 8192

3. JDBC 连接池

Services → Data Sources → Connection Pool
- Initial Capacity: 20
- Max Capacity: 100
- Min Capacity: 20
- Statement Cache Size: 50

✅ 建议:

  • Max Capacity ≈ 并发线程数
  • 开启 Test Connections on Reserve

四、网络与应用层优化

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

Server → Configuration → Tuning
- Enable Native IO: true

2. 禁用不必要的协议

如只使用 HTTP:

Protocols → 关闭 IIOP / T3(如不需要)

3. Session 调优

  • Session 超时时间适当缩短
  • 使用 Cookie 而非 URL Rewrite
  • 集群环境使用 Replicated Session

五、监控与问题分析

1. 常用监控工具

  • WebLogic Console → Monitoring
  • jstat -gcutil <pid> 1000
  • jstack <pid>
  • top -Hp <pid>

2. 关键指标

  • CPU 使用率
  • GC 频率和停顿时间
  • JDBC 等待数
  • 线程阻塞数

六、典型推荐配置(示例)

8C16G 服务器:

  • Xms / Xmx:8g
  • GC:G1
  • 线程池:最大 300
  • JDBC:最大 80

如果你能提供:

  • CentOS 版本
  • WebLogic 版本
  • JDK 版本
  • 并发量 / 业务类型

我可以给你更精确的参数配置方案。

0 踩