Linux环境下WebLogic性能调优的核心方法
ulimit -n临时修改或修改/etc/security/limits.conf(如* soft nofile 65535; * hard nofile 65535),增加系统可打开文件描述符数量,避免高并发下因文件句柄耗尽导致请求拒绝;调整/etc/sysctl.conf中的TCP参数(如net.ipv4.tcp_tw_reuse=1复用TIME_WAIT连接、net.core.somaxconn=1024扩大连接队列),优化网络I/O性能。vm.swappiness(如设为10)降低内核对交换空间的偏好,减少磁盘I/O;设置vm.dirty_ratio(如100)控制脏数据写回阈值,平衡内存与磁盘写入性能。setDomainEnv.sh文件,设置-Xms(初始堆)与-Xmx(最大堆)一致(如-Xms4096m -Xmx4096m),避免堆大小动态调整带来的性能开销;根据应用需求设置年轻代(-Xmn,如-Xmn1024m)与老年代比例,减少Full GC频率。-XX:+UseG1GC),并通过-XX:MaxGCPauseMillis(如200ms)设置最大停顿时间,平衡吞吐量与响应速度;避免使用Serial或Parallel Old等高停顿回收器。配置→服务器→执行队列→weblogic.kernel.Default)或修改config.xml,调整线程池大小:MinPoolSize(最小线程数,如100)、MaxPoolSize(最大线程数,如3000,建议为CPU核心数的50倍左右);设置线程数增加(如5)控制线程扩容步长,避免频繁创建/销毁线程。self-tuning-thread-pool-size-min(如100)和self-tuning-thread-pool-size-max(如400)设置自调优范围,让系统根据负载动态调整线程数,减少人工干预。服务→数据源→连接池)设置InitialCapacity(初始连接数)与MaxCapacity(最大连接数)一致(如200),避免运行时动态创建连接的开销;设置Capacity Increment(增长步长,如10)控制连接扩容幅度,减少资源波动。Connection Reserve Timeout(连接保留超时,如30秒)、Inactive Connection Timeout(非活动连接超时,如60秒),及时释放闲置连接,避免连接泄漏。noatime选项(如mount -o noatime /dev/sda1 /weblogic),减少文件访问时间更新带来的磁盘I/O。配置→服务器→优化)启用“本地I/O”(Enable Native IO),让Socket读操作使用独立执行队列,避免占用默认队列线程,提升I/O密集型应用的性能。/var/log/weblogic),避免日志写入与业务操作竞争磁盘I/O。监视→线程池→性能、监视→内存→堆使用率)实时监控线程、内存、JDBC连接等指标;使用jstat(监控GC)、jconsole(可视化监控)、VisualVM(综合分析)等工具深入分析性能瓶颈。