温馨提示×

CentOS怎么调优WebLogic

小樊
45
2026-08-20 02:25:31
栏目: 智能运维

下面给你一套在 CentOS 上针对 WebLogic 的调优思路,从 操作系统 → JVM → WebLogic → 应用层 逐层说明,适合生产环境参考。


一、CentOS 系统层调优

1. 内核参数(sysctl)

编辑 /etc/sysctl.conf/etc/sysctl.d/weblogic.conf

# 网络连接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30

# 队列
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 8192

# 文件句柄
fs.file-max = 1000000

# 内存
vm.swappiness = 10
vm.overcommit_memory = 1

生效:

sysctl -p

2. 文件描述符限制(非常重要)

WebLogic 并发高时容易报 too many open files

临时

ulimit -n 65535

永久(推荐)

编辑 /etc/security/limits.conf

weblogic soft nofile 65535
weblogic hard nofile 65535
weblogic soft nproc 65535
weblogic hard nproc 65535

确认 PAM:

grep pam_limits /etc/pam.d/login

3. 关闭不必要的服务

systemctl disable firewalld
systemctl disable postfix
systemctl disable cups

(生产环境可按需保留防火墙)


4. 磁盘 & IO

  • 使用 XFS
  • 日志、应用、数据目录分离
  • 避免 WebLogic 日志写入系统盘

二、JVM 调优(最关键)

WebLogic 本质是 Java 应用,JVM 调优优先于 WebLogic 参数

1. 设置 JVM 参数

编辑:

$DOMAIN_HOME/bin/setDomainEnv.sh

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

export USER_MEM_ARGS="-Xms8g -Xmx8g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+ParallelRefProcEnabled
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data/logs/weblogic/heapdump
-Xloggc:/data/logs/weblogic/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps"

建议:

  • -Xms = -Xmx(避免动态扩容)
  • 生产环境优先 G1GC
  • 不要盲目给 JVM 超过物理内存 70%

2. 大页内存(可选)

echo 2048 > /proc/sys/vm/nr_hugepages

并在 JVM 中:

-XX:+UseLargePages

三、WebLogic 自身调优

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

WebLogic 12c+

使用 Work Manager

  • 最小线程数:CPU 核数
  • 最大线程数:CPU 核数 × 2~4

示例:

Min Threads: 8
Max Threads: 32

2. JDBC 数据源调优

关键参数:

参数 建议
Initial Capacity 10
Max Capacity 50~200
Statement Cache Size 50~100
Test Connections On Reserve 关闭
Inactive Connection Timeout 300s

3. 连接数与 Accept Backlog

Admin Console
  → Servers
    → Configuration
      → Tuning
  • Accept Backlog:1024+
  • Max HTTP Connections:根据并发调整

4. 关闭不必要的服务

  • IIOP(不用 EJB 就关)
  • JMS(不用就关)
  • SSL(HTTP 场景可关)

四、网络与应用层

1. HTTP 服务

  • 启用 KeepAlive
  • 调整超时时间(30s~60s)

2. 前端代理(强烈推荐)

不要直接暴露 WebLogic:

Nginx / Apache → WebLogic

好处:

  • 静态资源
  • 连接复用
  • 限流、缓存

五、监控与问题排查

1. 必备监控

  • GC 日志
  • 线程 dump
  • 堆 dump
  • CPU / IO / 网络
jstack pid
jmap -heap pid

2. 常见性能问题

现象 原因
CPU 100% GC 频繁 / 死循环
响应慢 线程池满 / DB 慢
OOM 内存过小 / 内存泄漏

六、推荐配置总结(16G 机器)

OS: CentOS 7/8
JVM: JDK 8 + G1GC
Xms/Xmx: 8G
线程池: 8~32
数据源: 50~100
文件句柄: 65535

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

  • WebLogic 版本
  • JDK 版本
  • 并发量 / TPS
  • 是否有数据库 / 外部接口

我可以给你一套更精确的调优参数模板

0