下面从 WebLogic 在 Debian 上的常见调优点 给你一个系统性的说明,分为 OS 层、JVM 层、WebLogic 配置层、监控与排错 四部分。
WebLogic 连接多时会报 too many open files
# 查看
ulimit -n
# 修改(永久)
vi /etc/security/limits.conf
weblogic soft nofile 65536
weblogic hard nofile 65536
并确保:
/etc/pam.d/common-session
session required pam_limits.so
vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
sysctl -p
setDomainEnv.sh路径:
$DOMAIN_HOME/bin/setDomainEnv.sh
示例(8G 内存):
USER_MEM_ARGS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"
export USER_MEM_ARGS
建议:
-Xms = -Xmx(避免动态扩容)JDK 8(推荐 G1)
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/logs/weblogic/gc.log
WebLogic 默认 自优化线程池
不要手动改太小,可通过控制台查看:
Environment → Servers → <Server> → Monitoring → Threads
Services → Data Sources → Connection Pool
建议:
勾选:
Servers → Configuration → Tuning
Accept Backlog = 1024
Servers → Protocols → HTTP
jstat -gcutiljstacktop -H| 现象 | 原因 |
|---|---|
| CPU 高 | GC 频繁 / 死循环 |
| 响应慢 | 数据库连接不够 |
| OOM | Metaspace / Heap 设置小 |
| 连接拒绝 | 文件句柄 / Accept Backlog |
-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:+UseG1GC
nofile = 65536
Accept Backlog = 1024
JDBC Max = 50
如果你愿意,可以告诉我:
我可以给你一套 针对性调优方案。