1. 硬件资源优化
taskset命令将WebLogic进程绑定到特定CPU核(如taskset -c 0-3 /path/to/startWebLogic.sh),减少多核切换开销;通过cpupower工具调整CPU频率(如设置为performance模式),避免动态调参带来的性能波动。free -m监控)。net.core.rmem_max/net.core.wmem_max至2MB,提升网络吞吐量)。2. 操作系统内核参数调优
ulimit -n 65535)或永久修改(/etc/security/limits.conf添加* soft nofile 65535; * hard nofile 65535),避免高并发下“Too many open files”错误。/etc/sysctl.conf,设置net.ipv4.tcp_tw_reuse=1(重用TIME_WAIT连接)、net.ipv4.tcp_fin_timeout=30(缩短TIME_WAIT超时)、net.core.somaxconn=1024(增大连接队列长度),提升TCP处理效率。vm.swappiness设置为10-20(默认60),减少系统对Swap的使用,优先使用物理内存。1. 堆内存配置
-Xms)与最大堆(-Xmx)为相同值(如-Xms2048m -Xmx2048m),避免堆内存动态扩展带来的性能开销;建议初始堆占物理内存的10%-20%,最大堆不超过物理内存的70%(避免占用过多内存导致系统或其他应用卡顿)。-XX:PermSize=256m -XX:MaxPermSize=512m);Java 8及以上:无需设置永久代,改用元空间(默认无限制,但可通过-XX:MaxMetaspaceSize=512m限制)。2. 垃圾回收(GC)优化
-XX:+UseG1GC),适合大内存应用,能平衡吞吐量与延迟;调整GC参数:-XX:MaxGCPauseMillis=200(目标最大GC停顿时间,单位毫秒)、-XX:G1HeapRegionSize=4m(Region大小,根据堆内存调整)。-Xloggc:/path/to/gc.log -XX:+PrintGCDetails),通过jstat -gcutil <pid> 1000定期查看GC频率与耗时,及时调整GC策略。1. 线程池优化
Servers→选中服务器→Configuration→General→Advanced→Configure Execute Queues,修改weblogic.kernel.Default队列的Thread Count(默认15,建议调整为100-500,根据并发请求量调整)。-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500(覆盖默认自调优行为,适合高并发场景)。Monitoring→Threads),若Queue Length持续大于0,说明线程不足,需增加MaxPoolSize。2. 连接池优化
Services→Data Sources→选中数据源→Configuration→Connection Pool,调整:
Initial Capacity(初始连接数):设为20-50(根据应用启动时的连接需求);Max Capacity(最大连接数):设为50-200(不超过数据库的最大线程数,如MySQL的max_connections);Capacity Increment(增长数量):设为5-10(避免一次性创建过多连接,导致数据库压力骤增)。Test Connections on Reserve),确保连接有效性。3. 缓存配置
Entity Cache、Query Cache),减少数据库查询次数;设置合理的缓存大小(如Max Cache Size=100MB)和过期策略(如LRU,最近最少使用)。Static File Serving功能,减少应用服务器的负载。4. 日志优化
DEBUG级别),将日志级别调整为INFO或WARN(控制台→Servers→Logging→General);Max File Size=100MB)和备份数量(如File Count=5),避免日志文件过大占用磁盘空间;Environment→Servers→Service→Logging→HTTP→取消Enable HTTP Access Log),减少磁盘I/O。Monitoring→Performance)、WLST脚本(listPerformanceMetrics)收集性能数据;或使用第三方工具(如Oracle Enterprise Manager、VisualVM、JConsole)监控JVM、线程、数据库连接等指标。JMS、JMX),减少系统资源占用;setDomainEnv.sh、config.xml),便于回滚。