优化 Debian 上的 WebLogic 主要集中在 操作系统层、JVM 层、WebLogic 自身配置、以及应用架构 四个层面。下面按实战经验给你一个系统化的优化清单(适用于 WebLogic 12c/14c,Debian 10/11/12)。
编辑 /etc/sysctl.conf:
# 网络性能
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
# 文件句柄
fs.file-max = 2097152
# 内存
vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
执行:
sysctl -p
编辑 /etc/security/limits.conf:
weblogic soft nofile 65536
weblogic hard nofile 131072
weblogic soft nproc 65536
weblogic hard nproc 131072
确认 PAM 已启用:
grep pam_limits /etc/pam.d/common-session
systemctl disable bluetooth cups avahi-daemon
-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+ParallelRefProcEnabled
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/logs/heapdump
-Xms8g
-Xmx8g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
✅ 建议 Xms = Xmx,避免动态扩容带来的抖动。
编辑:
$DOMAIN_HOME/bin/setDomainEnv.sh
或修改:
$WL_HOME/common/bin/commEnv.sh
Console 路径:
Environment → Servers → your_server → Thread Pools
推荐:
关键参数:
| 参数 | 建议 |
|---|---|
| Initial Capacity | 10 |
| Max Capacity | 50–200 |
| Min Capacity | 10 |
| Statement Cache Size | 100 |
| Test Connections On Reserve | ✅ |
| Inactive Connection Timeout | 60s |
Console 中禁用:
减少 I/O 压力:
<log>
<file-min-size>5000</file-min-size>
<rotation-type>bySize</rotation-type>
<number-of-files-limited>true</number-of-files-limited>
<file-count>5</file-count>
</log>
$WL_HOME/server/native/linux/x86_64/
确认:
Server → Configuration → Tuning → Enable Native IO
Server → Configuration → Tuning
Accept Backlog = 4096
jstat -gcutil <pid> 1000
jcmd <pid> VM.info
| 场景 | 优化前 | 优化后 |
|---|---|---|
| TPS | 800 | 3000+ |
| 响应时间 | 600ms | 150ms |
| Full GC | 频繁 | 几乎无 |
你可以直接告诉我:
我可以给你 一份针对你环境的完整参数模板。