在 CentOS 上运行 WebLogic 时,调优通常从 操作系统、JVM、WebLogic 本身、应用和数据库 几个层面进行。下面给你一套生产环境常用、可落地的调优思路,按优先级排列。
WebLogic 会大量使用 socket 和文件句柄。
# 查看当前限制
ulimit -n
# 永久修改
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
vi /etc/sysctl.conf
fs.file-max = 6815744
sysctl -p
vi /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
vm.dirty_ratio = 10
sysctl -p
systemctl disable firewalld
systemctl disable postfix
(生产环境防火墙建议用硬件或 iptables)
查看:
java -version
编辑:
$DOMAIN_HOME/bin/setDomainEnv.sh
常用 生产环境 JVM 参数示例(JDK8):
export USER_MEM_ARGS="-Xms4g -Xmx4g -Xmn2g \
-XX:MetaspaceSize=512m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+ParallelRefProcEnabled \
-XX:+DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/opt/logs/heapdump \
-Xloggc:/opt/logs/gc.log \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps"
✅ 建议
WebLogic 12c+ 使用 Work Manager
路径:
Console → Environment → Work Managers
推荐:
路径:
Services → Data Sources → Connection Pool
推荐配置:
| 参数 | 建议 |
|---|---|
| Initial Capacity | 10 |
| Max Capacity | 100~300 |
| Min Capacity | 10 |
| Statement Cache Size | 100 |
| Test Connections On Reserve | ✅ |
| Test Table | DUAL / SQL |
示例:
Max Capacity = CPU核数 × 50(经验值)
Console →
Servers → Configuration → Tuning
Servers → Configuration → Protocols → HTTP
<session-config>
<session-timeout>30</session-timeout>
</session-config>
jstat -gcjstacknmon| 配置项 | 推荐 |
|---|---|
| OS | CentOS 7.x |
| CPU | ≥ 8 核 |
| 内存 | ≥ 16G |
| WebLogic | 12.2.1.4 |
| JDK | 1.8 |
| GC | G1 |
| JVM | 4G |
| 数据源 | 200 |
如果你愿意,可以告诉我:
我可以给你一份 完全针对你环境的调优参数清单。