JVM内存设置与垃圾回收策略直接影响WebLogic的运行效率。需重点调整以下参数:
-Xms(初始堆内存)和-Xmx(最大堆内存)设置堆内存大小,建议将两者设为相同值(避免堆内存动态调整带来的性能损耗),且不超过物理内存的70%(如4GB物理内存可设为2GB-2.8GB)。对于Java 7及以前版本,需添加-XX:PermSize(初始永久代大小,如256m)和-XX:MaxPermSize(最大永久代大小,如512m);Java 8及以上版本则使用-XX:MetaspaceSize(初始元空间大小)和-XX:MaxMetaspaceSize(最大元空间大小)替代。-XX:+UseG1GC),其针对大内存应用设计,能减少Full GC次数,提升吞吐量。可根据应用特点调整G1参数,如-XX:MaxGCPauseMillis(目标最大GC停顿时间,默认200ms)。CentOS系统的内核参数需适配WebLogic的高并发需求,重点调整以下项:
ulimit -n临时设置(如ulimit -n 65535),或修改/etc/security/limits.conf文件(添加* soft nofile 65535、* hard nofile 65535)永久生效,避免因文件描述符不足导致连接拒绝。/etc/sysctl.conf文件,添加以下参数以提升网络传输效率:net.ipv4.tcp_tw_reuse=1(允许复用TIME_WAIT状态的连接)、net.ipv4.tcp_fin_timeout=30(TIME_WAIT状态超时时间,单位秒)、net.core.somaxconn=1024(TCP连接队列最大长度)、net.core.rmem_max=16777216(接收缓冲区最大大小)、net.core.wmem_max=16777216(发送缓冲区最大大小)。修改后执行sysctl -p使配置生效。vm.swappiness(内核使用交换分区的倾向,值越小越倾向于使用物理内存,建议设为10-20)、vm.dirty_ratio(脏数据占系统内存的比例,超过则触发写回,建议设为10-20)、vm.dirty_background_ratio(后台写回的脏数据比例,建议设为5-10),减少磁盘I/O压力。weblogic.threadpool.MinPoolSize(最小线程数,建议设为10-30,保证低负载时的响应速度)和weblogic.threadpool.MaxPoolSize(最大线程数,建议设为100-500,避免过多线程导致CPU竞争)。可通过WebLogic控制台(Servers→配置→General→高级选项→线程池)或修改setDomainEnv.sh文件(添加-Dweblogic.threadpool.MinPoolSize=100、-Dweblogic.threadpool.MaxPoolSize=500)实现。Initial Capacity(初始连接数,建议设为10-20)、Max Capacity(最大连接数,建议设为50-200,不超过数据库的最大连接数)、Increment By(连接数增量,建议设为5-10)等参数,避免频繁创建和销毁连接。可通过WebLogic控制台(Services→Data Sources→配置→连接池)修改。Servers→配置→General→高级选项)中启用Use Native IO选项,或在setDomainEnv.sh中添加-Dweblogic.NativeIOEnabled=true。StuckThreadMaxTime(默认600秒)参数,将其设为1200秒或更高(如1800秒),避免因长时间运行的线程(如慢SQL)导致线程阻塞。可通过WebLogic控制台(Servers→配置→General→高级选项→Stuck Thread)修改。jconsole、VisualVM或WebLogic自带的监控工具(控制台→服务器→监控→内存)监控堆内存使用情况,重点关注Old Generation(老年代)的使用率。若老年代使用率持续上升且触发Full GC,需检查应用是否存在内存泄漏(如未关闭的数据库连接、静态集合持有对象引用)。echo 2048 > /proc/sys/vm/nr_hugepages),并在WebLogic启动脚本中添加-XX:+UseLargePages -XX:LargePageSizeInBytes=2m参数。top(查看CPU、内存使用率)、vmstat(查看系统级内存、CPU、I/O情况)、iostat(查看磁盘I/O情况)、jstat(查看JVM垃圾回收情况,如jstat -gcutil <pid> 1000每秒输出一次GC统计)等工具实时监控系统资源。Server日志级别设为INFO,避免DEBUG级别产生过多日志),定期分析日志中的错误信息(如ERROR、WARN)和性能相关日志(如慢请求日志),定位性能瓶颈。以上方法覆盖了CentOS环境下WebLogic性能优化的核心层面,需根据实际应用场景(如并发量、业务类型、硬件配置)灵活调整参数,持续监控和迭代优化,才能达到最佳性能效果。