weblogic10.3.6软件打补丁很慢问题


最近项目中同事反馈打补丁相当慢,中单等待的时候太久,需要查明一下原因。针对weblogic10~11之间的版本,总结了使用BSU升级weblogic补丁慢的解决方法,请参考如下:


1、bs打补丁的时候由于工具配置的堆内存太小,会导致打补丁慢,最终会出现 java.lang.OutOfMemory错误解

JVMDUMP013I Processed Dump Event "systhrow", detail "java/lang/OutOfMemoryError".  

Exception in thread "main" java.lang.OutOfMemoryError  

at org.apache.xmlbeans.impl.store.Cur.createElementXobj(Cur.java:257)  

at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.startElement(Cur.java:2992)  

at org.apache.xmlbeans.impl.store.Locale$SaxHandler.startElement(Locale.java:3194)  

at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportStartTag(Piccolo.java:1082)  

at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseOpenTagNS(PiccoloLexer.java:1473)


若要解决此问题,是需要增加堆内存大小,在WL_ HOME/utils/bsu目录中,bsu.cm或者bsu.sh脚本中。添加Xms和Xmx参数以增加堆大小。将原来的-Xms256m -Xmx512m  值 修改成-Xms1g -Xmx1g

示例如下:


2、 WLS BSU (Smart Update) 打补丁时占用很长时间 - 特别是在检查补丁冲突耗时需要更长时间 (Doc ID 2283399.1)

如下是官网给出来优化建议

适用于:

Oracle WebLogic Server - 版本 10.3.1 到 10.3.6
Oracle Fusion Middleware - 版本 11.1.1.1.0 到 11.1.1.9.0 [发行版 Oracle11g]
本文档所含信息适用于所有平台

症状

WLS BSU (Smart Update) 在安装补丁时会耗费很长时间. 特别是安装较大的补丁例如“补丁合集更新”(PSU)时,而检查补丁冲突耗时尤为明显。 以前你也许为BSU增加了堆内存, 但是在可接受的时间之内仍然不会完成。使用如下命令安装补丁:

./bsu.sh -install -patchlist=XXXX -patch_download_dir=/utils/bsu/cache_dir -prod_dir=

更改


原因

于是被内部报告为缺陷及功能增强请求来优化处理过程.

增强功能实现了优化处理过程。

先决条件:

1. 确认你的WebLogic服务器的版本是10.3.6

2. 确认你已经安装了以前的版本Smart Update 3.3.0

Patch 12426828  SMARTUPDATE 3.3 INSTALLER PLACEHOLDER 
  - 这是 10.3.6的补丁,即使它说是10.3.5, (当它最初发布时)

  - 当你启动BSU时, 它将在加载时显示版本。 如果服务器可以访问因特网, 那么在运行该工具时,您应该可以选择智能更新.
  - 你也可以运行如下命令:
     %MW_HOME%\utils\bsu\bin\bsu.cmd -version (for Windows)
     $MW_HOME/utils/bsu/bin/bsu/bsu.sh -version (for Unix/Linux)

Smart Update 3.3.0 参考链接:
https://docs.oracle.com/cd/E14759_01/doc.32/e14143/intro.htm#CHDCAJFC

 


新补丁

 

3. 为了达到以上需求,下载并安装补丁  < Patch 31136426>  SMART UPDATE TOOL ENHANCEMENT V4

     请根据 readme.txt 更新 BSU 工具。

     还需要增加内存:

     对于Microsoft Windows系统

      编辑bsu.cmd脚本并按如下所示更改内存选项:

      设置MEM_ARGS = -Xms1024m -Xmx4096m

     对于UNIX系统

      编辑bsu.sh脚本并按如下所示更改内存选项:

      MEM_ARGS =“-Xms1024m -Xmx4096m”

     更新历史:(以前版本的增强工具)

  • Nov 3, 2020:  Patch 27238412 (v3.0) replaced to reduces heap memory usage, avoid OOM error during patch application, and reduce overall patch application time. Also, fixed HP IA Bug 30198823 and Solaris 10 Bug 30867816.   
  • Dec 11, 2017:  Patch 26664545  (v2.0) replaced due to a Windows issue - bsu_update.bat has "cp" commands in it instead of "copy" commands. If you have this applied on UNIX platforms, there is no action to take.
  •    Aug 28, 2017:  Patch 25153061  (v1.0) causes a Null Pointer Exception in EBS environment. If you have this applied, rollback and apply the above replacement . Reference: Note 2288418.1  ADOP FS_CLONE Failed After WLS Patch 25153061 Is Applied


  • 请根据 readme.txt 更新 BSU 工具。


以前提供过的建议

4. 增大堆内存防止出现 "java.lang.OutOfMemoryError: GC overhead limit exceeded" 错误:

  • 进入路径 $MW_HOME/utils/bsu
  • 准备编辑 bsu.sh (对于 UNIX) 或者 bsu.cmd (对于 Windows)
  • 找到 MEM_ARGS 的设置, 例如, 默认的值是 MEM_ARGS="-Xms256m -Xmx512m"
  • 增长这些值到较高的设置, 例如., MEM_ARGS="-Xms1024m -Xmx1024m"

注意: 2020年3月27日更新:在更新BSU工具之后,PSU自述文件以及以上部分中更新了内存要求。 以下项目符号仅用于历史记录。

5. 确认 MEM_ARGS 在 bsu 脚本中对 patch-client.jar 生效了:

  • 查找如下行: 
    "$JAVA_HOME/bin/java" -jar patch-client.jar $*
  • 更改行内容确保 MEM_ARGS 被使用了:
    "$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*

6. 不再使用的较旧的 PSU 可以从bsu的 cache_dir目录删除, 这样可以增快一些处理.

7. 使用 "top" 命令(在 UNIX) 或者 任务管理器 (在 Windows) 确保在打补丁的时候没有其他进程导致CPU过载。

8. 如果您正在使用GUI模式并遇到冻结或挂起,请尝试命令行模式。看 Note 876004.1, "How to Apply WebLogic Server (WLS) Patches Using Smart Update".


请使用浏览器的分享功能分享到微信等