Weblogic性能调优最佳实践文档

来源:这里教程网 时间:2026-03-03 22:49:39 作者:

在日常部署或运行 WebLogic 时,如果遇到    内存溢出、连接不足、线程拥塞、拒绝连接 等问题,可以通过以下八个方面进行调优:

一、内存配置优化

在部署或启动项目时报错:java.lang.OutOfMemoryError: PermGen space 由于WebLogic的配置问题,我们的测试出现了失败情况。原因是为WebLogic分配的内存太少了。通过修改setDomainEnv.sh文件来增加内存分配。 打开setDomainEnv.sh文件,该文件的路径位于: /weblogic/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh

修改以下参数:(当前操作系统,选择修改“SUN”)if [ "${JAVA_VENDOR}" = "Sun" ] ; thenWLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"  //64位export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m"  //32位export WLS_MEM_ARGS_32BIT 
 if [ "${JAVA_VENDOR}" = "Sun" ] ; thenWLS_MEM_ARGS_64BIT="-Xms4096m -Xmx4096m"  //64位export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms4096m -Xmx4096m"  //32位export WLS_MEM_ARGS_32BIT

⚠️ 建议 JVM 最大内存不超过物理内存的 50%~60%,一般最大值不超过 8G。

二、线程池参数优化

调整连接线程数,默认线程比较少,添加以下参数

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinPoolSize=500"export JAVA_OPTIONS
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MaxPoolSize=3000"export JAVA_OPTIONS

???? 推荐分配:   CPU 核心数 × 50

三、Java 参数优化

修改Weblogic使用的jdk:

cd  /weblogic/jdk1.6.0_45/jre/lib/security/
vi java.security 
securerandom.source=file:/dev/urandom 修改为securerandom.source=file:/dev/./urandom

四、操作系统参数优化

增加用户进程数以及能打开的文件数:

编辑    /etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

五、应用服务器优化(启动参数)

控制台启动需要配置,后台启动不需要配置。实际大小配置参考第一第二部分:

-Xms1024m -Xmx1024m
-Dweblogic.threadpool.MinPoolSize=800
-Dweblogic.threadpool.MaxPoolSize=1200

image.png

六、连接缓存优化(Accept Backlog)

Config.xml 文件中的元素接受缓存数( AcceptBacklog )属性是用来设定请求 WebLogic 实例的连接数,在拒绝额外的请求之前,能接受设定的缓存数。 AcceptBacklog 属性指定有多少 TCP 连接缓存在等待队列,这个固定的队列存放了 TCP 堆栈已经收到但应用程序还没有收到的连接请求。默认值是 50 ,最大值由操作系统决定。 在控制台调整接受缓存数的步骤:

  1. 启动 WebLogic ,访问控制台。

  2. 展开左边面板 Servers 节点。

  3. 点击你要配置的服务器实例的名称。 image.png

  4. 选择配置( Configuration )―― > 调整( Tuning )标签。

  5. 根据需要修改默认的接受缓存数( Accept Backlog ):

  6. 点击应用( Apply ),保存设置。

在运行期间,如果许多客户端连接得不到响应或被拒绝,并且服务器端也没有错误消息,说明接受缓存的值可能太小。 在你访问 WebLogic 时,如果收到“拒绝连接( connection refused )”的提示,则应该增加接受缓存的默认值的 25 %。继续增加其值的 25 %,直到停止出现这样的提示。

七、JDBC 连接池优化

调整 JDBC 连接池的容量 在产品系统中,就应该把 InitialCapacity 的值设为与 MaxCapacity 值相同。默认值比较小,可能会连接池溢出。这样,在服务器启动时,所有的连接就会被创建。如果你调整了 MaxCapacity 值后,一定要确信 InitialCapacity 值设置与 MaxCapacity 值相同。 如果 InitialCapacity 比 MaxCapacity 值少,当负荷增加时,服务器需要创建额外的数据库连接。当服务器处于低负荷时,所有的资源应该是尽快的完成请求,而不是创建新的数据库连接。 1 、登录weblogic 控制台,选择服务——数据源——选择需要优化的数据源 image.png 2 、选择连接池,点击下面的高级,最后点击锁定并编辑按钮 3 、初始容量优化 image.png

八、启用本地 IO 性能包

本地 Socket 读的多线程有自己的执行队列而不需要借用默认的执行队列线程,这样可以让默认执行线程很从容去处理应用程序。 如果 Enable Native IO 复选框没有被选择,选中即可。 通过管理控制台来验证,步骤如下:

  1. 启动管理服务器。
  2. 访问管理控制台。
  3. 展开左边面板的 Servers 节点,显示域服务。
  4. 点击你要配置的服务实例。
  5. 选择 配置 ——优化
  6. 如果 Enable Native IO 复选框没有被选择,选中即可。
  7. 点击保存 。
  8. 重启服务器。 image.png

总结

WebLogic 调优可以从    JVM 内存、线程池、JDBC、操作系统、IO 五大层面着手。 合理的参数配置能显著提升系统稳定性和吞吐量,避免“高并发时掉链子”的尴尬。

相关推荐