关闭不必要的系统服务
CentOS默认启动的服务(如postfix邮件服务、NetworkManager网络管理工具)可能占用系统资源。通过systemctl stop <服务名>停止非必需服务,并用systemctl disable <服务名>禁止开机自启,释放CPU、内存等资源。
调整内核参数优化系统性能
修改/etc/sysctl.conf文件,优化以下关键参数以提升系统处理并发的能力:
vm.swappiness=10:降低内核使用交换空间的倾向(值越小越依赖物理内存,建议10-30);net.ipv4.tcp_tw_reuse=1:允许复用TIME_WAIT状态的TCP连接,减少连接建立开销;net.ipv4.tcp_fin_timeout=30:缩短TIME_WAIT状态的超时时间(默认60秒,改为30秒);net.core.somaxconn=1024:增加TCP监听队列的最大长度,避免连接被拒绝。sysctl -p使配置生效。优化文件系统与挂载选项
XFS(适用于大容量存储、高并发场景)或EXT4(通用场景);noatime选项(如/dev/sda1 / xfs defaults,noatime 0 0),避免每次文件访问都更新访问时间,减少磁盘I/O。管理SELinux设置
若无需严格的强制访问控制,可将SELinux设置为permissive模式(setenforce 0)或完全禁用(修改/etc/selinux/config中的SELINUX=disabled),避免SELinux对WebLogic的网络访问、文件读写造成权限限制。
调整文件描述符限制
WebLogic处理大量并发连接时,需增加文件描述符的最大值(默认通常为1024)。
ulimit -n 65535(仅当前会话有效);/etc/security/limits.conf文件,添加* soft nofile 65535和* hard nofile 65535(对所有用户生效)。优化TCP/IP参数
除内核参数外,还需调整TCP连接的backlog(接受队列大小),避免因队列满导致连接拒绝。修改/etc/sysctl.conf中的net.core.netdev_max_backlog=2048和net.core.somaxconn=1024,提升系统处理高并发连接的能力。
JVM内存参数优化
-Xms)和最大堆(-Xmx),建议设置为相同值(如-Xms2048m -Xmx2048m),避免堆内存动态扩展带来的性能波动;-XX:PermSize=512m -XX:MaxPermSize=512m(永久代用于存储类元数据);Java 8及以上版本改用元空间(-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m);-XX:+UseG1GC),适用于大内存、低延迟场景,可通过-XX:MaxGCPauseMillis=200设置最大GC停顿时间目标。线程池配置优化
mydomain→servers→myserver→Configuration→General→Advanced Options→Configure Execute Queues)调整weblogic.kernel.Default队列的Thread Count(默认15,生产环境建议设置为100-500,根据并发请求数调整);-Dweblogic.threadpool.MinPoolSize=100和-Dweblogic.threadpool.MaxPoolSize=500设置最小/最大线程数,适应动态负载变化。连接池配置优化
数据库连接池是应用与数据库交互的关键组件,需合理设置以下参数:
Initial Capacity(初始容量):设置为5-10(避免启动时创建过多连接);Max Capacity(最大容量):根据应用并发需求设置(如200-500),避免连接泄漏导致连接池耗尽;Inactive Connection Timeout=30(非活动连接超时时间,释放闲置连接)、Retry Count=3(连接创建失败时的重试次数)。缓存配置优化
Configuration→Services→Caching→Cache Configuration开启缓存,提升频繁访问数据的读取速度;Statement Cache Size(如设置为100),缓存常用SQL语句,减少数据库查询次数。日志配置优化
Log4j或System.out.println语句,避免频繁的日志输出占用磁盘I/O和CPU资源;WARN或ERROR(避免DEBUG级别的详细日志),减少日志文件大小;mydomain→servers→myserver→Configuration→Logging→HTTP)取消“启用HTTP访问日志文件”。应用代码优化
SELECT *、减少子查询,提升数据库查询效率;JSP与Servlet优化
Configuration→Web Application→JSP Compiler设置Check Interval=60(JSP重新检查时间,避免频繁编译)、Compilation Threshold=10(编译阈值,提升JSP执行效率);Servlet Buffer Size(如8192字节),提升Servlet响应速度。使用内置工具监控性能
Monitoring→Performance页面查看线程池、连接池、内存使用等指标;getThreadPoolRuntime()获取线程池状态),自动化监控。使用JMX监控
通过JConsole、VisualVM等JMX客户端连接WebLogic服务器,实时监控JVM内存、线程、GC等详细指标,及时发现内存泄漏、线程阻塞等问题。
第三方监控工具
使用Oracle Enterprise Manager Cloud Control(OEMC)、Prometheus+Grafana等工具,实现全面的性能监控、告警和趋势分析,帮助快速定位性能瓶颈。
选择合适的JVM
根据操作系统和WebLogic版本选择高性能JVM:
启用本地I/O库
在WebLogic启动脚本(startWebLogic.sh)中添加-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider(Linux系统),启用本地I/O库,提升套接字复用器效率。
定期重启服务
定期重启WebLogic服务器(如每周一次),清理内存碎片、释放闲置资源,避免长期运行导致的性能下降。