修改/etc/sysctl.conf文件,优化TCP/IP及文件系统参数,提升网络与I/O性能:
net.core.somaxconn=4096:增加TCP监听队列长度,避免连接请求被拒绝;net.ipv4.tcp_tw_reuse=1:允许复用TIME_WAIT状态的连接,减少连接建立开销;net.core.rmem_max=16777216/net.core.wmem_max=16777216:增大TCP读写缓冲区,提升网络吞吐量;vm.swappiness=10:降低系统对交换分区(Swap)的依赖,减少磁盘I/O延迟。sysctl -p使配置生效。WebLogic处理高并发时需大量文件描述符,通过以下命令调整:
ulimit -n 10240;/etc/security/limits.d/90-nproc.conf,添加* -nofile 10240,避免“Too many open files”错误。net.core.netdev_max_backlog=2048增大网络队列长度,应对高流量。进入WebLogic控制台→环境→服务器→线程池,调整以下参数:
CPU核心数+1(如4核CPU设为5);I/O密集型任务设为CPU核心数×2(如4核CPU设为8);CallerRunsPolicy(让调用者线程执行任务,避免丢弃请求)。进入WebLogic控制台→服务→数据源,调整以下关键参数:
Inactive Connection Timeout(如300秒,空闲连接最大存活时间)、Connection Reserve Timeout(如10秒,请求连接的最大等待时间),及时释放闲置或无法获取的连接;Test Connections on Reserve(每次从连接池取出连接时验证有效性),设置Test TableName(如MySQL用SELECT 1、Oracle用SELECT 1 FROM DUAL),确保连接可用性;Inactive Connection Timeout(如300秒),若应用未正确关闭连接,WebLogic会强制回收闲置连接。RowPrefetchEnabled(默认false),设置RowPrefetchSize(如100-200),减少网络传输次数(一次性获取多行数据,而非逐行查询);stream-chunk-size(如8192-16384字节),平衡内存使用与传输速度(适合处理大对象,如BLOB/CLOB);Capacity Increment(如1-5),控制连接池扩容时的批量创建数量,避免一次性创建过多连接。WHERE、JOIN字段建立索引,避免全表扫描;SELECT *:只查询需要的字段,减少数据传输量;LIKE '%xxx%'(无法使用索引),使用EXPLAIN分析SQL执行计划。-Dweblogic.servlet.cache.enable=true),缓存静态页面(如HTML、CSS),减少服务器处理负担;配置数据缓存(如Ehcache),缓存热点数据(如商品信息),减少数据库访问;根据服务器物理内存调整堆大小,避免过大(导致GC停顿过长)或过小(频繁GC):
-Xms(初始堆)与-Xmx(最大堆)设置为相同值(如-Xms2g -Xmx4g),减少内存碎片;-XX:+UseG1GC),通过并行与并发处理减少停顿时间;-XX:MaxGCPauseMillis=200(目标最大GC停顿时间,单位毫秒),平衡吞吐量与延迟;-XX:MetaspaceSize=256m(初始大小)、-XX:MaxMetaspaceSize=512m(最大大小),避免元空间溢出。jstat(监控GC)、jstack(分析线程阻塞)、vmstat(查看系统整体性能)。