在 CentOS 下优化 WebLogic,通常可以从 操作系统层面、JVM 层面、WebLogic 自身配置、应用层面 四个方向入手。下面给你一套实用型优化清单(以生产环境常见场景为例)。
WebLogic 高并发时容易报 Too many open files
# 查看
ulimit -n
# 修改(永久)
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
vi /etc/sysctl.conf
建议添加:
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
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 或安全组代替)
vi $DOMAIN_HOME/bin/setDomainEnv.sh
示例(16G 内存服务器):
USER_MEM_ARGS="-Xms8g -Xmx8g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export USER_MEM_ARGS
✅ 原则:
-Xms = -Xmx(避免动态扩容)-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/logs/weblogic/gc.log
WebLogic 默认自动调优,一般 不要手动写死
但可限制最大线程:
Administration Console
Servers → your server → Threads → Maximum Thread Constraint
示例:
Services → Data Sources → Connection Pool
推荐配置:
✅ 避免:
Servers → your server → Configuration → General
✅ Enable Native IO
提升 socket 性能(尤其 Linux)
Servers → Protocols → HTTP
✅ Keep Alive
Timeout: 30
top
vmstat 1
iostat -x 1
JVM: 8G
GC: G1
线程池: 300
JDBC: 50
Native IO: 开启
前端: Nginx
如果你愿意,可以告诉我:
我可以给你一套 精准配置文件级别优化方案。