- 首页 >
- 问答 >
-
智能运维 >
- Ubuntu环境下WebLogic的性能调优技巧
Ubuntu环境下WebLogic的性能调优技巧
小樊
47
2025-11-15 02:14:24
Ubuntu 上 WebLogic 性能调优要点
一 系统层优化
- 资源与监控
- 使用 top/htop 观察 CPU、内存与负载;用 vmstat、iostat、sar 持续监测系统瓶颈;必要时用 cgroups 限制容器/实例资源,避免单实例拖垮整机。
- 文件描述符与进程数
- 提升用户级资源上限,编辑 /etc/security/limits.conf:
- 建议设置:nofile 65535、nproc 65535(重启会话或 PAM 生效)。
- 网络与连接队列
- 提升内核网络队列与全连接队列:
- net.core.netdev_max_backlog
- net.core.somaxconn
- 监听套接字的 backlog(WebLogic 的 Accept Backlog 与之对应)
- 调优 TCP 保活与回收,缓解 TIME_WAIT 堆积与连接僵死:
- net.ipv4.tcp_keepalive_time
- net.ipv4.tcp_keepalive_intvl
- net.ipv4.tcp_tw_reuse / tcp_tw_recycle(按需、谨慎)
- 内存与 OOM
- 合理设置 vm.swappiness,避免过早换页;必要时启用 zram/zswap 提升低内存场景的缓冲能力。
- 对关键实例调整 oom_score_adj,降低被 OOM Killer 误杀的概率(需谨慎评估)。
二 JVM 与 WebLogic 参数
- 堆与模式
- 在 setDomainEnv.sh 中设置 -Xms/-Xmx(建议等值,如 -Xms4G -Xmx4G),避免运行期频繁扩缩堆;生产环境启用 产品模式(默认线程、连接池更合理)。
- 线程池
- 自调优线程池(推荐):在管理控制台或 config.xml 设置 Self-Tuning Thread Pool 的 Min/Max,按压测逐步收敛到最佳吞吐(避免盲目拉满)。
- 兼容旧版本或特定需求时,可通过启动参数设置(示例):-Dweblogic.threadpool.MinPoolSize=1000 -Dweblogic.threadpool.MaxPoolSize=1000(注意与自调优策略不要冲突)。
- 启动慢与熵源
- 在 $JAVA_HOME/jre/lib/security/java.security 将
- securerandom.source=file:/dev/urandom
- 改为:securerandom.source=file:/dev/./urandom
- 可显著缩短 Linux 上的启动时间(规避阻塞式熵源)。
- 本地 I/O
- 在服务器配置中启用 Enable Native IO,提升网络与 I/O 处理效率(需 JNI/本地库支持)。
三 数据源与连接池
- 容量与预热
- 生产环境建议将 InitialCapacity=MaxCapacity,避免运行期频繁建连;容量按峰值并发与数据库承载能力评估,并预留安全余量。
- 超时与健康检查
- 合理设置 Connection Timeout、Idle Timeout、Test Connections On Reserve/Release,结合数据库 wait_timeout 与网络 RTT 调整,避免“拿起来就断”与连接风暴。
四 网络与 TCP 栈关键参数示例
- 建议以压测为准,按瓶颈逐步调大;以下为常见起点(示例值,需结合业务与内核默认值评估):
- 全连接队列与设备队列
- net.core.netdev_max_backlog:8096
- net.core.somaxconn:8096
- 监听套接字 backlog(WebLogic 的 Accept Backlog 上限受此约束)
- 建议从 1024 起步,结合连接突增与“connection refused”现象按 25% 阶梯上调至稳定。
- TCP KeepAlive(探测间隔与次数按 SLA 与网络质量设定)
- net.ipv4.tcp_keepalive_time:1800
- net.ipv4.tcp_keepalive_intvl:30
- TIME_WAIT 回收(谨慎开启,优先复用与短超时策略)
- net.ipv4.tcp_tw_reuse:1
- net.ipv4.tcp_tw_recycle:0/1(不同内核版本行为差异,建议先 0 并充分回归测试)
- WebLogic 侧
- 在控制台:Servers > 目标服务器 > Configuration > Tuning > Accept Backlog,从 1024 起步,按 25% 递增至“拒绝连接”消失且稳定。
五 监控与容量规划
- 观测与诊断
- 使用 WebLogic Administration Console / Performance Monitoring 观察线程、队列、JDBC、JVM 等关键指标;对疑似阻塞请求启用 Stuck Thread Max Time 与线程栈导出,定位长事务与慢 SQL。
- 系统层指标
- 持续采集 CPU、内存、I/O、网络、句柄、线程 等,配合 Prometheus + Grafana 建立可视化与告警,形成闭环调优与容量评估机制。