firewalld
、NetworkManager
等),减少系统资源消耗。例如:systemctl stop firewalld && systemctl disable firewalld systemctl stop NetworkManager && systemctl disable NetworkManager
/etc/sysctl.conf
文件,添加以下配置:# 提升TCP连接复用率 net.ipv4.tcp_tw_reuse = 1 # 缩短TIME_WAIT状态超时时间(秒) net.ipv4.tcp_fin_timeout = 30 # 增加本地端口范围 net.ipv4.ip_local_port_range = 1024 65535 # 提升系统允许的最大进程数 vm.max_map_count = 262144
执行sysctl -p
使配置生效。WebLogic高并发场景下,系统默认的文件描述符限制(通常为1024)会导致“Too many open files”错误。需调整用户级和系统级的文件描述符限制:
ulimit -n 65535
/etc/security/limits.conf
文件,添加以下内容:* soft nofile 65535 * hard nofile 65535
同时修改/etc/security/limits.d/90-nproc.conf
(针对进程数限制):* soft nproc 5000 * hard nproc 10000
重启系统或重新登录使配置生效。内存占用过高常源于JVM堆配置不合理或内存泄漏。需调整JVM参数以优化内存使用:
-Xms
)和最大堆(-Xmx
)设置为相同值(如2GB),避免堆内存动态扩展带来的性能损耗:export JAVA_OPTIONS="$JAVA_OPTIONS -Xms2048m -Xmx2048m"
-XX:+UseG1GC
),提升垃圾回收效率,减少Full GC停顿时间:export JAVA_OPTIONS="$JAVA_OPTIONS -XX:+UseG1GC"
export JAVA_OPTIONS="$JAVA_OPTIONS -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=4m"
将上述配置添加到WebLogic启动脚本(如setDomainEnv.sh
)中,重启服务器生效。线程池过大或过小都会导致资源占用过高:
config.xml
文件,在<server>
标签内添加:<self-tuning-thread-pool-size-min>200</self-tuning-thread-pool-size-min> <self-tuning-thread-pool-size-max>400</self-tuning-thread-pool-size-max>
setDomainEnv.sh
中添加:export JAVA_OPTIONS="$JAVA_OPTIONS -Dweblogic.threadpool.MinPoolSize=200 -Dweblogic.threadpool.MaxPoolSize=400"
数据库连接池过大或未合理设置会导致数据库资源占用过高:
top
/htop
:查看CPU和内存占用TOP进程。jstat -gcutil <pid>
:监控JVM堆内存和垃圾回收情况(如老年代占用率超过80%需扩容)。jstack <pid>
:抓取线程转储,分析死锁或长时间阻塞的线程。BatchInsert
)替代单条插入,降低数据库负载。通过以上步骤,可有效降低CentOS系统中WebLogic的资源占用,提升系统稳定性和并发处理能力。优化过程中需注意:所有配置修改前需备份原文件,并在测试环境验证后再应用于生产环境。