- 首页 >
- 问答 >
-
智能运维 >
- Ubuntu上WebLogic性能调优有哪些策略
Ubuntu上WebLogic性能调优有哪些策略
小樊
45
2025-12-10 18:43:04
Ubuntu上WebLogic性能调优策略
一 系统层优化
- 资源与监控:使用top/htop观察CPU与内存,vmstat/iostat/sar持续监测系统负载与I/O;必要时用cgroups限制容器/进程资源,避免单实例过度占用。
- 内存与OOM:通过**/proc//oom_score_adj降低关键进程被OOM Killer终止的风险;在内存紧张场景下启用zram/zswap**提升可用物理内存。
- 文件系统与I/O:按业务选择ext4/xfs/btrfs;用iotop定位I/O热点,必要时调整调度策略与挂载选项。
- 内核与网络:适度提升fs.file-max等文件句柄上限,优化TCP相关参数(如somaxconn、backlog等)以支撑高并发连接。
- 监控体系:引入Prometheus + Grafana采集OS与JVM指标,建立阈值告警与容量水位线。
二 JVM与GC调优
- 堆与元空间:生产环境建议**-Xms == -Xmx**(避免运行期扩缩堆带来的抖动);堆一般不超过物理内存的50%~70%;Java 8+ 使用Metaspace并设置上限(如**-XX:MetaspaceSize=… -XX:MaxMetaspaceSize=…),Java 7及以下配置PermSize/MaxPermSize**。
- 年轻代:将**-Xmn设为堆的约1/3~1/2**,并配置**-XX:SurvivorRatio**(如8),减少晋升与Full GC压力。
- GC选择:
- 吞吐量优先(Java 8):-XX:+UseParallelGC -XX:+UseParallelOldGC;
- 低延迟优先(Web常见):-XX:+UseG1GC -XX:MaxGCPauseMillis=…;
- 超大堆/极低暂停(Java 11+):-XX:+UseZGC或**-XX:+UseShenandoahGC**。
- 诊断与稳定性:开启**-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=…、-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:…;生产禁用显式GC(-XX:+DisableExplicitGC**),64位开启**-XX:+UseCompressedOops**。
三 WebLogic服务器参数
- 运行模式:将域设置为产品模式(生产默认值更偏向性能与稳定性,如默认线程与连接池容量更高)。
- 执行线程与工作线程:
- 传统执行队列(如weblogic.kernel.Default)可按并发调Thread Count;同时关注Stuck Thread(默认600秒)与队列监控,必要时适度上调阈值或先优化慢请求;
- 版本9.x/10.x具备自调优线程池,亦可通过启动参数(如**-Dweblogic.threadpool.MinPoolSize=… -Dweblogic.threadpool.MaxPoolSize=…**)设定边界。
- I/O与网络:在支持的版本/平台启用Native IO以提升网络吞吐;按并发与连接突发调Accept Backlog(默认50),出现“connection refused”时可按约**25%**步长递增验证。
- 数据源与连接池:将InitialCapacity ≈ MaxCapacity(减少运行期扩容开销),并将MaxCapacity与处理线程数相匹配;合理设置StatementCacheSize以减少SQL解析成本。
四 Ubuntu与Linux内核参数示例
- 文件句柄与进程数(/etc/security/limits.conf):
- 示例:* soft/hard nofile 65535;* soft/hard nproc 65535(WebLogic运行用户应单独配置,避免用通配)。
- 内核与网络(/etc/sysctl.conf 或 /etc/sysctl.d/99-weblogic.conf):
- fs.file-max = 655350
- net.core.somaxconn = 4096(或更高,视负载与backlog而定)
- net.ipv4.tcp_tw_reuse = 1;net.ipv4.tcp_tw_recycle = 0(NAT/负载均衡环境慎用recycle)
- vm.swappiness = 10(减少换页,优先保障热点数据在物理内存)
调整后执行sysctl -p生效。
- 随机数与熵源(JVM启动参数):如遇到启动慢/SSL初始化慢,可设置**-Djava.security.egd=file:/dev/./urandom**(注意“./”规避内置优化路径)。
五 监控与容量规划
- 关键指标:OS层关注CPU利用率、负载、I/O等待、可用内存/换页;JVM层关注Heap/Meta/GC暂停与次数、线程数、类加载;WLS层关注Queue Length、吞吐、Stuck Thread、JDBC连接池利用率与等待。
- 工具与方法:
- 内置控制台与Performance Monitoring做白盒观测;
- Prometheus + Grafana做长期趋势与阈值告警;
- 采用基准测试→单参数微调→压测验证→回归观测的闭环,逐步逼近最优配置。