weblogic10.3.6軟體打補丁很慢問題

jaymarco發表於2020-12-01


最近專案中同事反饋打補丁相當慢,中單等待的時候太久,需要查明一下原因。針對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=<MW_HOME>/utils/bsu/cache_dir -prod_dir=<WL_HOME>

更改


原因

於是被內部報告為缺陷及功能增強請求來最佳化處理過程.

增強功能實現了最佳化處理過程。

先決條件:

1. 確認你的WebLogic伺服器的版本是10.3.6

2. 確認你已經安裝了以前的版本Smart Update 3.3.0

 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 參考連結:

 


新補丁

 

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:   (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:   (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:   (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".


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2738467/,如需轉載,請註明出處,否則將追究法律責任。

相關文章