在 CentOS 上优化 WebLogic,通常从操作系统层、JVM 层、WebLogic 配置层、网络与监控几个方面入手。下面给你一套比较实用、可落地的优化清单。
WebLogic 连接多,容易报 too many open files
# 查看
ulimit -n
# 修改 /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
重启会话或重启服务器生效。
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
执行:
sysctl -p
systemctl disable firewalld
systemctl stop firewalld
(生产环境建议用安全组或 iptables 替代)
# /etc/hosts
127.0.0.1 localhost
192.168.1.10 weblogic1
避免 WebLogic 启动时 DNS 解析慢。
USER_MEM_ARGS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export USER_MEM_ARGS
建议:
JDK 8(推荐)
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
JDK 11+
-XX:+UseG1GC
-Xms4g
-Xmx4g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/weblogic/dump
控制台:
Environment → Servers → Configuration → Threads
Accept Backlog
Server → Configuration → Tuning
Accept Backlog = 1024
Max HTTP Connections
Protocols → HTTP
Max Post Size = 10M
Production Mode = true
减少开发期日志和校验。
Services → Data Sources → Connection Pool
建议:
Server Log Level = Warning
Debug 关闭
避免磁盘 IO 被打满。
-Xloggc:/opt/weblogic/logs/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
| 问题 | 原因 |
|---|---|
| CPU 高 | GC 频繁 / 死循环 |
| 内存涨 | 内存泄漏 |
| 连接满 | 连接池小 / 未释放 |
| 响应慢 | 线程不足 / SQL 慢 |
Nginx / F5
↓
WebLogic Cluster
↓
Oracle / MySQL
如果你能告诉我:
我可以直接给你一套可复制的参数配置。