在 Debian 上优化 Oracle WebLogic Server,通常可以从 操作系统层、JVM 层、WebLogic 自身配置、应用层 四个维度来做。下面按实战经验给你一个较完整的优化思路(适用于生产环境)。
编辑 /etc/sysctl.conf:
# 网络
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
# 文件句柄
fs.file-max = 6815744
# 内存
vm.swappiness = 10
应用:
sysctl -p
编辑 /etc/security/limits.conf:
weblogic soft nofile 65536
weblogic hard nofile 65536
weblogic soft nproc 65536
weblogic hard nproc 65536
如果使用 systemd 启动,还需在 service 文件中加:
LimitNOFILE=65536
systemctl disable bluetooth cups avahi-daemon
查看:
java -version
在 setDomainEnv.sh 中调整:
export JAVA_OPTIONS="-Xms4g -Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+ParallelRefProcEnabled
-XX:+DisableExplicitGC"
✅ 建议:
-XX:+AggressiveOpts-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/opt/weblogic/logs/gc.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=20M
Admin Console
→ Environment → Servers → your_server
→ Configuration → Tuning
建议:
Execute Threads: 50~100
关键点:
示例:
Initial Capacity: 10
Max Capacity: 50
Min Capacity: 10
Inactive Connection Timeout: 300
export PRODUCTION_MODE=true
$DOMAIN_HOME/bin/setDomainEnv.sh
确认:
-Dweblogic.NativeIOEnabled=true
Console → Servers → Protocols → HTTP
WebLogic 专注应用逻辑。
jstat -gcutil <pid> 1000
jstack <pid>
jmap -histo <pid>
| 项目 | 建议 |
|---|---|
| OS | Debian 11/12 |
| JDK | JDK 8u371 / JDK 11 |
| GC | G1 |
| Heap | 4G~8G |
| 线程 | 50~100 |
| 生产模式 | 开启 |
| 前置代理 | Nginx |
如果你愿意,我可以:
你可以直接贴:
WebLogic 版本 + JDK 版本 + 服务器配置 + 当前问题