温馨提示×

debian的weblogic怎样调优

小樊
43
2026-09-29 12:11:46
栏目: 智能运维

在 Debian 上运行 WebLogic Server 的调优,通常分为 操作系统层(Debian)、JVM 层、WebLogic 自身配置 和 应用层 四个方面。下面按实战经验给你一个较系统的调优指南。


一、Debian 操作系统层调优

1. 文件描述符(ulimit)

WebLogic 连接多时会受限于 fd。

# 查看
ulimit -n

# 修改(临时)
ulimit -n 65535

# 永久(/etc/security/limits.conf)
weblogic soft nofile 65535
weblogic hard nofile 65535

并确保:

/etc/pam.d/common-session
session required pam_limits.so

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
vm.swappiness = 10

执行:

sysctl -p

3. 禁用或调整 swap

生产环境建议:

swapoff -a

或至少降低 swappiness。


二、JVM 调优(最重要)

WebLogic 默认使用 Oracle JDK / OpenJDK。

1. 堆内存设置

在 setDomainEnv.sh 中:

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

✅ 建议:

  • 堆大小固定(Xms = Xmx)
  • 不超过物理内存 70%
  • 大内存使用 G1:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200

2. GC 日志(必须开)

-Xlog:gc*:file=/u01/logs/gc.log:time,uptime,level,tags

或旧版:

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

3. 线程栈

-Xss256k

三、WebLogic 自身调优

1. 线程池(自 12c 起为自调优)

不要手动改太多,但可设上限:

Servers → <server> → Threads
Minimum Threads Constraint: 16
Maximum Threads Constraint: 200

2. 连接池(JDBC)

关键参数:

  • Initial Capacity:20
  • Max Capacity:100~200
  • Min Capacity:20
  • Statement Cache Size:50
Test Connections On Reserve: true
Connection Creation Retry: 3

3. Accept Backlog

Protocols → TCP → Accept Backlog = 8192

4. 关闭不必要服务

  • IIOP(如无 EJB)
  • JMS(不用就关)
  • WebLogic T3(外网建议关)

四、网络与应用层

1. 启用 KeepAlive

Protocols → HTTP → Enable Keep Alives

2. 前端代理

推荐:

  • Nginx / Apache + WebLogic
  • 静态资源走 Nginx

五、监控与问题定位

1. 工具

  • jstat -gcutil
  • jstack
  • WebLogic Console → Monitoring
  • GC 日志分析(GCViewer)

2. 常见瓶颈

现象 原因
CPU 高 GC / 死循环
响应慢 线程池满
OOM 堆太小 / 内存泄漏
连接拒绝 fd / backlog

六、示例(典型生产配置)

USER_MEM_ARGS="-Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xss256k"

Debian:

net.core.somaxconn=65535

WebLogic:

  • Max Threads = 200
  • JDBC Max = 150
  • Accept Backlog = 8192

如果你能告诉我:

  • WebLogic 版本(10 / 12c / 14c)
  • JDK 版本
  • 并发量 / 内存大小

我可以给你 更精准的参数模板。

0 踩