在 CentOS 上优化 WebLogic Server,通常从 操作系统、JVM、WebLogic 自身配置、数据库连接、网络及应用层面 几个方面入手。下面给你一套比较系统、可落地的优化思路(以生产环境常见场景为主)。
WebLogic 高并发时需要大量 socket 和文件句柄。
# 查看
ulimit -n
# 修改(临时)
ulimit -n 65535
# 永久修改
vi /etc/security/limits.conf
weblogic soft nofile 65535
weblogic hard nofile 65535
编辑 /etc/sysctl.conf:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
执行:
sysctl -p
减少系统资源占用:
systemctl disable firewalld # 若由硬件防火墙代替
systemctl disable postfix
WebLogic 默认 JVM 参数偏小,必须根据内存调整。
修改:
$DOMAIN_HOME/bin/setDomainEnv.sh
示例(32G 内存服务器):
USER_MEM_ARGS="-Xms16g -Xmx16g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g"
export USER_MEM_ARGS
✅ 建议:
-Xms = -Xmx(避免动态扩容)-XX:+UseParallelGC
# 或
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
-Xloggc:/logs/weblogic/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
WebLogic 默认自动调整,但可限制最大值:
Console:
Environment → Servers → <Server> → Configuration → General
Servers → <Server> → Configuration → Tuning
Accept Backlog = 4096
确保使用:
/opt/weblogic/server/native/linux/x86_64
并在启动参数中启用:
-Dweblogic.nativeio.enabled=true
Services → Data Sources → Connection Pool
示例:
Initial Capacity: 50
Max Capacity: 200
Min Capacity: 50
Test Connections On Reserve = true
Seconds to Trust an Idle Pool Connection = 10
避免通用 JDBC 驱动。
Servers → Protocols → HTTP
proxy_read_timeout 60s;
proxy_connect_timeout 10s;
Log Level: WARNING 或 ERROR
jstat -gcutiljstack| 项目 | 优化前 | 优化后 |
|---|---|---|
| TPS | 300 | 1200+ |
| 响应时间 | 800ms | 200ms |
| Full GC | 频繁 | 几乎无 |
你可以告诉我:
我可以直接给你 一份可用的参数模板。