在 Debian 上运行 WebLogic(Oracle WebLogic Server) 时,性能调优通常从 操作系统、JVM、WebLogic 自身、应用、数据库 五个层面入手。下面给你一套实战型调优清单,适用于生产环境。
WebLogic 高并发下容易遇到 too many open files
# 查看
ulimit -n
# 临时修改
ulimit -n 65535
# 永久修改
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
✅ 重启后生效
编辑:
vi /etc/sysctl.conf
推荐配置(高并发):
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65535
生效:
sysctl -p
避免 JVM GC 时卡顿:
swapoff -a
永久关闭:
vi /etc/fstab # 注释 swap 行
-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/logs/heapdump
✅ Xms = Xmx(避免动态扩容)
编辑:
$DOMAIN_HOME/bin/setDomainEnv.sh
或:
$WL_HOME/common/bin/commEnv.sh
使用 Work Manager
Environment → Work ManagersInitial Capacity: 20
Max Capacity: 100~200
Increment: 5
Statement Cache Size: 50
Test Connections On Reserve: true
✅ 连接数 ≠ 并发数
✅ 防止连接泄漏
$WL_HOME/server/native/linux/x86_64
WebLogic 控制台确认:
Servers → Configuration → Tuning
✅ Enable Native IO
生产环境:
INFO 或 WARNING
关闭:
jstat -gc pid
jstack pid
jmap -heap pid
top
htop
iostat -x 1
netstat -an | grep ESTABLISHED | wc -l
| 问题 | 原因 | 解决 |
|---|---|---|
| CPU 100% | GC 频繁 | 调大堆、换 G1 |
| 响应慢 | 连接池不够 | 增加 JDBC |
| OOM | 内存泄漏 | HeapDump 分析 |
| TPS 上不去 | 线程池小 | 调整 WorkManager |
| Linux 报错 | 文件句柄 | ulimit |
| 项目 | 推荐 |
|---|---|
| Debian | 关闭 swap |
| JVM | G1 + 固定堆 |
| 线程 | 200~400 |
| 连接池 | 100~200 |
| 文件句柄 | 65535 |
如果你愿意,可以告诉我:
我可以给你一套 针对你环境的精确调优参数。