在 CentOS 上运行 WebLogic Server 时,调优通常从 操作系统、JVM、WebLogic 自身参数、应用层面 四个方面入手。下面给你一个实用向的调优清单,适合生产环境参考。
WebLogic 连接多时会报 too many open files
# 查看
ulimit -n
# 修改(/etc/security/limits.conf)
weblogic soft nofile 65536
weblogic hard nofile 65536
net.core.somaxconn = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
执行:
sysctl -p
systemctl stop firewalld
systemctl disable firewalld
(生产建议用 iptables 或安全组)
路径示例:
$DOMAIN_HOME/bin/setDomainEnv.sh
-Xms4096m
-Xmx4096m
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
✅ Xms = Xmx,避免动态扩容
-XX:+UseParallelGC
# 或
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
-Xloggc:/logs/weblogic/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
WebLogic 9+ 默认自动调节
✅ 一般不用手动改
如需限制:
Administration Console
Servers → Configuration → Tuning
Initial Capacity = 10
Max Capacity = 50~100
Statement Cache Size = 20
✅ 不要设置过大,避免 DB 被打死
Servers → Tuning → Accept Backlog = 1024
防止高并发时连接被拒绝
Servers → Configuration → General
✅ Enable Native IO
Administration Console
Servers → Protocols → HTTP
✅ Enable Gzip Compression
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Nginx → WebLogic
java weblogic.Admin| 现象 | 可能原因 |
|---|---|
| CPU 高 | 死循环 / GC 频繁 |
| 内存涨 | 内存泄漏 |
| 连接超时 | 线程池满 |
| too many files | nofile 限制 |
| 响应慢 | JDBC 池不足 |
-Xms8192m
-Xmx8192m
-XX:MetaspaceSize=512m
-XX:+UseG1GC
-Xloggc:/app/logs/gc.log
如果你愿意,可以告诉我:
我可以给你一套定制化的调优方案。