在 CentOS 上运行 WebLogic 时,调优通常围绕 操作系统、JVM、WebLogic 本身、数据库/网络 四个层面来做。下面给你一套生产环境常用、可落地的调优思路,从基础到进阶。
WebLogic 并发高时,默认 1024 很容易打满。
# 查看当前限制
ulimit -n
# 临时修改
ulimit -n 65535
# 永久修改
vi /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
编辑:
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
systemctl stop firewalld
systemctl disable firewalld
或只放行端口:
firewall-cmd --add-port=7001/tcp --permanent
firewall-cmd --reload
$DOMAIN_HOME/bin/setDomainEnv.sh
-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
✅ 建议
-Xms8g
-Xmx8g
-XX:+UseG1GC
Services → Execute Queues
Thread Count: 100~400
使用 Work Manager
✅ 不建议盲目调大,CPU 核数 × 50 是经验值
Initial Capacity: 10
Max Capacity: 50~200
Min Capacity: 10
Statement Cache Size: 50~100
✅ 建议:
$WL_HOME/server/native/linux/x86_64
确认:
libmuxer.so
WebLogic 控制台:
Servers → Configuration → Tuning
✅ Enable Native IO
Servers → Configuration → Tuning
Accept Backlog: 2048
Keep-Alive Timeout: 30s
Post Timeout: 30s
jstat -gcutil <pid> 1000
jstack <pid> > thread.txt
Monitoring → Threads
Monitoring → JDBC
Monitoring → JVM
| 问题 | 原因 | 解决 |
|---|---|---|
| CPU 100% | GC 频繁 | 调大堆、换 G1 |
| 连接数爆 | JDBC 未释放 | 调连接池 |
| 响应慢 | Accept Backlog 小 | 调大 |
| OOM | Metaspace 小 | 增大 Metaspace |
| 启动慢 | DNS 解析 | 加 /etc/hosts |
-Xms8g
-Xmx8g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+HeapDumpOnOutOfMemoryError
线程池:200
JDBC:100
Accept Backlog:2048
如果你愿意,可以告诉我:
我可以给你一份 完全针对你环境的调优参数清单。