在 CentOS 环境下对 WebLogic 进行调优,通常从 操作系统、JVM、WebLogic 自身参数、数据库连接、线程与网络 几个方面入手。下面给你一套实用、可落地的调优思路(以生产环境常见场景为例)。
WebLogic 并发高时容易报 Too many open files
# 查看
ulimit -n
# 修改(永久)
vi /etc/security/limits.conf
weblogic soft nofile 65536
weblogic hard nofile 65536
# 系统级
vi /etc/sysctl.conf
fs.file-max = 6815744
sysctl -p
vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
sysctl -p
路径示例:
$DOMAIN_HOME/bin/setDomainEnv.sh
JAVA_OPTIONS="
-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/logs/heapdump.hprof
"
✅ 建议:
-Xms = -Xmx,避免动态扩展开销路径:
环境 → 服务器 → 你的Server → 配置 → 线程
建议:
<cpu核数 * 2>路径:
服务 → 数据源 → 连接池
推荐配置:
初始容量:20
最大容量:100~200
最小容量:20
空闲超时:300 秒
测试频率:120 秒
测试语句:SQL SELECT 1
✅ 一定要启用 Connection Test
服务器 → 配置 → 优化
libasync-native 库<session-config>
<session-timeout>30</session-timeout>
</session-config>
production mode)weblogic.jspc
WARNING 或 ERRORjstat -gcutiljstack| 现象 | 可能原因 |
|---|---|
| CPU 高 | GC 频繁 / 线程阻塞 |
| 响应慢 | 连接池不够 |
| OOM | 内存设置小 / 内存泄漏 |
| Too many open files | ulimit 小 |
| 请求堆积 | 线程池不足 |
如果你愿意,可以告诉我:
我可以给你一套 针对你场景的精确调优参数。