在 CentOS 上调优 WebLogic 性能,通常从操作系统层、JVM 层、WebLogic 自身配置、应用与数据库几个维度入手。下面给你一套比较实用、可落地的调优思路。
WebLogic 高并发时需要大量 socket 和文件句柄。
# 查看
ulimit -n
# 修改(永久)
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
# 重新登录或重启
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
vm.swappiness = 10
sysctl -p
systemctl disable firewalld # 如不在生产防火墙策略中
systemctl stop firewalld
(生产环境建议用 iptables 精确控制)
WebLogic 常用 JDK 8 + HotSpot,推荐 G1 GC(高版本 JDK 更推荐)。
路径示例:
$DOMAIN_HOME/bin/setDomainEnv.sh
示例(JDK 8):
export JAVA_OPTIONS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/dump"
✅ 建议:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/logs/gc.log
WebLogic 9+ 使用自调优线程池,一般不建议写死。
如需调整:
Console → Server → Configuration → Tuning
- Initial Thread Count: 16
- Maximum Thread Count: 400(视 CPU 核数)
Server → Configuration → Tuning → Accept Backlog = 8192
Services → Data Sources → Connection Pool
- Initial Capacity: 20
- Max Capacity: 100
- Min Capacity: 20
- Statement Cache Size: 50
✅ 建议:
Server → Configuration → Tuning
- Enable Native IO: true
如只使用 HTTP:
Protocols → 关闭 IIOP / T3(如不需要)
jstat -gcutil <pid> 1000jstack <pid>top -Hp <pid>8C16G 服务器:
如果你能提供:
我可以给你更精确的参数配置方案。