Debian环境下WebLogic性能调优技巧
taskset命令将WebLogic进程绑定到特定CPU核心(如taskset -c 0-3 /path/to/startWebLogic.sh),减少上下文切换开销,提高缓存命中率。/etc/sysctl.conf优化网络栈,例如增加TCP缓冲区大小(net.core.rmem_max=16777216、net.core.wmem_max=16777216)、调整连接队列长度(net.ipv4.tcp_max_syn_backlog=8192、net.core.somaxconn=4096),提升网络并发处理能力。-Xms)与最大堆(-Xmx)为相同值(如-Xms4g -Xmx4g),避免运行时动态扩展导致的性能波动;根据应用内存需求调整,避免过大堆引发Full GC停顿。-XX:+UseG1GC),适合大内存堆(如8GB以上),可通过-XX:MaxGCPauseMillis=200设置最大停顿时间(毫秒),-XX:InitiatingHeapOccupancyPercent=45调整触发并发GC的堆占用率,平衡吞吐量与延迟。-XX:MetaspaceSize)与最大大小(-XX:MaxMetaspaceSize)一致(如-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g),避免元空间频繁扩展导致的Full GC。-Xss256k,默认1MB),减少内存占用(每个线程栈节省约768KB),尤其适合高并发线程场景。config.xml(/domains/domain_name/config/config.xml)设置线程池大小,min-threads(最小线程,如20)保证基础并发,max-threads(最大线程,如200)匹配服务器CPU核心数(建议每个核心2~5个线程),避免线程过多导致上下文切换开销。initial-capacity(初始连接数,如10)、max-capacity(最大连接数,如100)、connection-timeout(连接超时,如30秒),启用连接测试(test-table-name=SELECT 1 FROM DUAL)确保连接有效性;开启JDBC批处理(statement-cache-size=100),减少数据库交互次数。logging.properties文件,将日志级别调整为INFO(避免DEBUG的过多输出),启用异步日志(java.util.logging.ConsoleHandler.useParentHandlers=false + java.util.logging.AsyncHandler),减少日志写入对请求处理的阻塞。SELECT *(只查询必要字段),为WHERE、JOIN、ORDER BY子句中的字段创建索引(如B-Tree索引适合等值/范围查询),使用绑定变量(PreparedStatement)避免SQL硬解析(减少数据库CPU消耗)。AWR报告),删除无效索引(未使用的索引会增加写操作开销);对组合索引遵循“最左匹配原则”(如INDEX(col1, col2)能加速col1 = ? AND col2 = ?但不加速col2 = ?)。SGA_TARGET)和PGA(如PGA_AGGREGATE_TARGET)大小,提升数据库缓存命中率,减少磁盘I/O。/etc/sysctl.conf中启用TCP Keep-Alive(net.ipv4.tcp_keepalive_time=600、net.ipv4.tcp_keepalive_probes=3、net.ipv4.tcp_keepalive_intvl=10),保持长连接,减少连接建立的开销;调整net.ipv4.tcp_tw_reuse=1,复用TIME-WAIT状态的连接。Cache-Control: max-age=3600),缓存静态资源(图片、CSS、JS),减少对后端应用和数据库的访问。-Dweblogic.security.ssl.sessionCacheSize=10000),减少SSL握手次数;使用SSL会话票证(-Dweblogic.security.ssl.enableSessionTickets=true),提升高并发下的SSL处理性能。-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log开启GC日志,使用工具(如GCViewer、GCEasy)分析GC频率和停顿时间,调整堆大小或垃圾回收器参数。