在 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.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
生效:
sysctl -p
systemctl disable firewalld
systemctl stop firewalld
WebLogic 本质是 Java 应用。
路径:
$DOMAIN_HOME/bin/setDomainEnv.sh
示例(JDK 8 + 8G 内存):
JAVA_OPTIONS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export JAVA_OPTIONS
推荐:
-Xms = -Xmx(避免动态扩容)-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/logs/weblogic/gc.log
WebLogic 默认自动调节,但可限制:
最常见性能瓶颈
Console 路径:
服务 → 数据源 → 连接池
建议:
初始容量 = 最小容量 = 最大容量
最大容量 = 并发数 × 1.2
示例:
开启:
Console → 服务器 → 配置 → 优化
☑ 启用本地 I/O
提升 socket 性能。
Console → 服务器 → 协议 → HTTP
☑ 启用 GZIP
超时:30s
最大请求:100
jstack <pid> > thread.txt
jmap -heap <pid>
如果你愿意,可以告诉我:
我可以给你 一份可直接用的参数模板。