反饋已提交
網絡繁忙
如果記憶體環境配置不合理,非常容易導緻報表系統當機,且此類當機情況很難複現,排查困難。
【系統檢查】,可幫助使用者檢查系統中的各項配置是否合理,以輔助使用者優化環境配置,更好地防止當機情況的發生。
使用者手動檢查/平台定期檢查報表系統各項環境配置是否合理。
當系統環境配置不合理時,派送訊息給使用者。
為使用者提供系統環境配置的合理改進指導。
10.0.16 之前版本的報表工程,需要安裝插件,方可獲得【系統檢查】功能。
10.0.16 及之後版本的報表工程,功能直接內建,無需安裝插件。
點選下載插件:系統檢查插件
伺服器安裝插件方法請參見:A11-18 伺服器-插件管理
管理者登入數據決策系統,點選【管理系統】→【智慧維運】,新增【系統檢查】Tab,如下圖所示。
系統檢查的內容有以下七項:堆內記憶體、備用記憶體、堆外記憶體、垃圾回收器型別、堆內老年代與新年代比例、磁碟剩餘空間、棧空間。檢查結果包含檢查項、當前配置、修改建議和狀態。具體信息如下表所示。
若無法檢測出當前配置,當前配置為空,修改意見為【暫不支援此項】,點選狀態後面的【詳情】,即可檢視具體原因。
若系統為叢集環境,在【系統檢查】頁面左上角可選擇具體的叢集節點進行檢測。
若所有檢查項均沒有問題時,會提示:此項配置良好,無需調整。如下圖所示。
(-XX:NewRatio=2,JVM的預設值)
【系統自動檢查】未開啟時為手動檢查,系統重啟後,每小時獲取一次系統的配置情況,當管理員登入資料決策系統,開啟【系統檢查】頁面時,系統進行檢查,獲取最近一次的系統配置,更新檢查結果。
開啟【系統自動檢查】並儲存後,系統在每日凌晨 1 點進行自動檢查。
選擇需要的【通知方式】,支援簡訊提醒、平台訊息、郵件提醒,存在不合理配置時可透過選擇的通知方式提醒管理員。
注1:本文僅介紹10.0.16及之前版本的檢查項,10.0.17 及之後版本的系統檢查項和檢查邏輯請參見:系統檢查擴展内容 。
注2:各檢查項的修改方法請參考:修改FineReport配置參數
注3:若無法檢查出當前配置,當前配置為空,修改意見為【暫不支援此項】,點選狀態後面的【詳情】,即可查看具體原因。
注4:若系統為叢集環境,在【系統檢查】頁面左上角可選擇具體的叢集節點進行檢查。
2022-03-01 及之後版本,支援一鍵配置系統檢查建議值。
對於以下環境,不支援一鍵配置功能:
1)非 Tomcat 部署環境,不支援一鍵配置系統檢查建議值,例如was部署、weblogic部署等。
2)FineReport 和FineBI 整合的環境,不支援一鍵配置系統檢查建議值。
3)工程系統中若存在自行設定的 setenv 檔案,不支援一鍵配置系統檢查建議值。
4)服務形式啟動的 Tomcat 工程,不支援一鍵配置系統檢查建議值。
5)Windows環境下 exe 啟動的 Tomcat 工程,不支援一鍵配置系統檢查建議值。
6)設計器環境下的 FineReport 工程,不支援一鍵配置系統檢查建議值。
7)系統物理記憶體為 16 GB及以下的環境,不支援一鍵配置系統檢查建議值。
8)叢集工程環境,不支援一鍵配置系統檢查建議值。
若當前工程環境滿足一鍵配置的要求,且存在需要一鍵配置的檢查項,在【系統檢查】頁面左上角出現按鈕【查看建議配置】。
點選【查看建議配置】,即可勾選需要配置的檢查項,點選【應用配置】,即可一鍵配置異常項的值。配置成功後,跳出提示【應用配置成功,重啓伺服器後生效】。
報表工程重啓後,可以發現剛剛的異常項均已成功配置。
注1:支援一鍵配置的檢查項為:堆內記憶體、堆外NIO記憶體、堆外FineIO記憶體、垃圾回收器型別、老年代與新生代比例、棧空間。
注2:若沒有檔案讀寫權限或者無法修改配置檔案時,提示【應用配置失敗:沒有配置檔案讀寫權限】,點選【確定】,則修改失敗,傳回系統檢查介面。
記憶體檢查項的檢查邏輯如下表所示。
檢查項
檢查內容
檢查結果
改進建議
單機多進程
檢查報表工程所在的系統中,除報表進程外的其他進程,佔用的記憶體是否大於總物理記憶體的1/8。
若不大於總物理記憶體的1/8,則該項檢查合格,進入第 2 項檢查。
-
若大於總物理記憶體的1/8,則認為該系統為單機多進程系統,系統穩定性較差,存在當機隱患,且無法進行後續的合理推薦,結束檢查流程。
當前系統疑似為多進程,存在當機隱患,建議僅保留報表工程併合理配置相關參數。 建議關閉系統中其他無用進程,僅保留報表工程相關的進程。
垃圾回收器
檢查虛擬機垃圾回收器是否為ParallelScavenge。
垃圾回收器型別為ParallelScavenge,則該項檢查合格,進入第 3 項檢查。
垃圾回收器型別不是ParallelScavenge,提示修改,並跳越至第 6 項檢查。
建議JVM使用垃圾回收器型別為 ParallelScavenge。 請參考第五章第1節配置垃圾回收器型別。
堆內記憶體推薦值
由於存在雲端運維資料中 GC 不夠14天、GC 資料異常等問題,會導致無法計算出準確的系統堆內記憶體推薦值,所以需要判斷是否存在推薦值。
系統存在堆內記憶體推薦值,則該項檢查合格,進入第 4 項檢查。
系統存在堆內記憶體推薦值,生成提示,並跳越至第 6 項檢查。
系統運作資料不足,暫時無法進行配置推薦。
堆內記憶體
只有在當前堆記憶體不夠用時纔會針對防止記憶體上限溢位的當機進行推薦,所以需要先檢查當前系統的堆內記憶體是否小於系統堆內記憶體推薦值。
若堆內記憶體當前值小於推薦值,則該項檢查合格,進入第 5 項檢查。
若堆內記憶體當前值大於推薦值,則跳越至第 6 項檢查。
物理記憶體-推薦堆記憶體
單機單進程下,整個物理機記憶體=堆記憶體推薦值+堆外NIO所需記憶體+堆外fineIO所需記憶體+預留記憶體,預留記憶體暫時定為 1/4 物理記憶體。
若檢查出【當前物理記憶體-推薦堆記憶體-5G】≥【1/4物理記憶體】,生成提示,並跳越至第 7 項檢查。
推薦當前系統的堆內記憶體增加到系統推薦的堆內記憶體。 請參考 第五章第2節配置堆內記憶體。
若檢查出【當前物理記憶體-推薦堆記憶體-5G】<【1/4物理記憶體】,生成提示,且無法進行後續的合理推薦,結束檢查流程。
建議物理記憶體增加至【(推薦的堆內記憶體+5G)4/34】以上的值。 請增大物理記憶體。
物理記憶體-當前配置堆記憶體
在無堆記憶體推薦值(GC日誌不足、GC日誌不準確、非PS垃圾回收器幾種情況下均無堆記憶體推薦值)、堆記憶體推薦值不大於當前對記憶體設定值時,暫時無法準確判斷出當前系統不發生堆內上限溢位的堆記憶體用量,所以無法對堆記憶體做用量推薦,只能對堆外的記憶體模型進行檢查和配置建議。
若檢查出【當前物理記憶體-當前配置堆記憶體-5G】≥【1/4物理記憶體】,說明當前記憶體配置在配置好規定的堆外記憶體後即可消除堆外記憶體當機風險,則該項檢查合格,進入第 4 項檢查。
若檢查出【當前物理記憶體-當前配置堆記憶體-5G】<【1/4物理記憶體】,無法判定是xmx配置過大還是物理記憶體較小,只能生成提示,且無法進行後續的合理推薦,結束檢查流程。
當前系統記憶體配置不合理,存在當機風險,建議檢查後修改相關配置。 請參考第五章第2節調小堆內記憶體,請增大物理記憶體。
堆外記憶體
檢查堆外記憶體設定大小是否超過2G。
若當前堆外記憶體未超過2G,則該項檢查合格,進入第 8 項檢查。
若當前堆外記憶體超過了2G/未配置堆外記憶體,則生成提示,並跳越至第 8 項檢查。
建議堆外記憶體(Maxdirectmemory)設定為2G。 請參考第五章第3節修改堆外記憶體。
fineIO讀記憶體
檢查fineIO讀記憶體【-Dfineio.read_mem_limit】參數配置大小是否超過2G。
若當前fineIO讀記憶體未超過2G,則該項檢查合格,進入第 9 項檢查。
若當前fineIO讀記憶體超過了2G,則生成提示,並跳越至第 9 項檢查。
建議【-Dfineio.read_mem_limit】參數設定為2G。 請參考第五章第4節修改 fineIO讀記憶體。
fineIO寫記憶體
檢查fineIO寫記憶體【-Dfineio.write_mem_limit】參數配置大小是否超過1G。
若當前fineIO寫記憶體未超過1G,則該項檢查合格,結束檢查流程。
若當前fineIO寫記憶體超過了1G,則生成提示,結束檢查流程。
建議【-Dfineio.write_mem_limit】參數設定為1G。 請參考第五章第5節修改 fineIO寫記憶體。
本節以工程部署在 Tomcat 上為例, 介紹設定垃圾收集器為 Parallel Scavenge(並行收集器)的方法。
Windows 系統:打開 %Tomcat%/bin 目錄下的 catalina.bat 檔案進行配置,配置完成後重啓工程即可生效:set JAVA_OPTS= -XX:+UseParallelGC。
Linux:打開 %Tomcat%/bin 目錄下的 catalina.sh 檔案進行配置,配置完成後重啓工程即可生效:JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"。
堆內記憶體的修改方法,請參見下方表格文檔。
參數介紹
伺服器型別
參考文檔
【-Xmx】 參數:最大堆內記憶體。 【-Xms】 參數:初始化記憶體大小。
注1:Xmx/Xms 與數字之間不要有空格。
注2:建議配置Xms=Xmx,以防止記憶體擴容失敗情況。
Tomcat 伺服器
Tomcat 伺服器記憶體修改
WebLogic 伺服器
WebLogic 伺服器記憶體修改
WebSphere 伺服器
JBoss 伺服器
Resin 伺服器
Resin 伺服器記憶體修改
堆外記憶體由 【-XX:MaxDirectMemorySize】 這個參數來設定。本文以工程部署在 Tomcat 上為例介紹修改方法。如下圖所示。
Windows:修改 %Tomcat%/bin 目錄下的 catalina.bat 檔案,增加配置,配置完成後重啓工程:set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g。
Linux/Unix:修改 %Tomcat%/bin 目錄下的 catalina.sh 檔案,增加配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"。
fineIO 讀記憶體由【-Dfineio.read_mem_limit】這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO讀記憶體的步驟。
讀記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2。
Linux:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"。
fineIO 寫記憶體由【-Dfineio.write_mem_limit】這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO寫記憶體的步驟。
寫記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1。
Linux:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"。
檢查結果和改進建議具體如下表所示。
當前配置
檢查出問題標準
磁碟剩餘空間
顯示工程所在磁碟當前剩餘空間。
工程所在磁碟剩餘空間小於 5GB。
系統所在磁碟剩餘空間建議不小於5G,請及時進行清理。
垃圾回收器型別
顯示當前垃圾回收器型別。
GC 型別不為 ParallelScavenge。
堆內老年代與新生代的比例
顯示當前堆內老年代與新生代大小比例。
堆內老年代與新生代大小比例不為 2。
建議 JVM 老年代與新生代大小比例設定為 2。 請參考第六章第1節進行修改。
堆疊空間
顯示當前 【-Xss】 的值。
【-Xss】 的值大於 512。
建議單執行緒使用堆疊空間不超過 512 KB。 請參考第六章第2節進行修改。
JDK 版本
顯示當前 JDK 版本。
JDK 版本低於 1.8.101 版本。
建議使用【JDK8】中 1.8.0_181 及以上版本。
finedb
多工程共用。
與其他工程共用 finedb ,如:
1)兩個及以上報表工程共用。
2)兩個及以上 BI 工程共用。
3)報表 BI 整合工程與報表單獨工程共用。
4)報表 BI 整合工程與 BI 單獨工程共用。
5)報表工程與 BI 工程共用。
建議一個 finedb 僅對應一個工程,杜絕多個工程共用一個 finedb。 請參考 配置外接資料庫 文檔遷移 finedb。
HSQL
使用內置資料庫。
建議將 finedb 遷移至更穩定的外接資料庫中。 請參考 配置外接資料庫 文檔遷移 finedb。
【DisableExplicitGC】 參數
已配置。
配置 【DisableExplicitGC】 參數時提示。
建議取消該【DisableExplicitGC】 參數配置。 請參考 第六章第3節取消參數配置。
headless 模式
未啟用。
未配置 -Djava.awt.headless=true 時提示。
建議配置 -Djava.awt.headless=true 以啟用 headless 模式。 請參考 第六章第4節進行配置。
日誌級別
DEBUG
當前日誌級別配置為 DEBUG 級別時提示。
建議設定日誌級別為 ERROR 請參考 日誌簡介 第二章第3節設定日誌級別。
堆內老年代與新生代大小比例建議為 2(-XX:NewRatio=2,JVM的預設值);NewRatio 大小正常生效需要使用者不限制新生代大小。
在設定【-Xmx】、【-Xms】參數的位置,新增 NewRatio 的值即可,本節展示 Tomcat 環境下設定 NewRatio 的步驟。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:set JAVA_OPTS= -Xms512M -Xmx1024M -XX:NewRatio=2。
Linux:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"。
建議單執行緒使用堆疊空間不超過1024KB,即 【-Xss】 的值不超過 1024 。
在設定【-Xmx】、【-Xms】參數的位置,新增 【-Xss】 的值即可,本節展示 Tomcat 環境下設定 【-Xss】 的步驟。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:set JAVA_OPTS= -Xms512M -Xmx1024M -Xss1024K。
Linux 系統:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"。
【-XX:+DisableExplicitGC】參數的作用是禁用 System.gc()。
System.gc() 是一種保護機制,例如堆外記憶體滿時清理它的堆內引用物件,使用者需要根據實際情況選擇是否使用該參數。
本節展示 Tomcat 環境下設定 【DisableExplicitGC】 參數的步驟。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:”set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC。
Linux:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"。
headless 模式是系統的一種工作模式,如果系統屬性 java.awt.headless=true ,那麼headless工具包就會被使用。
本節展示 Tomcat 環境下啟用 headless 模式的步驟。
Windows:在 %Tomcat%/bin 目錄下的 catalina.bat 檔案中新增配置,配置完成後重啓工程:set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true。
Linux:在 %Tomcat%/bin 目錄下的 catalina.sh 檔案中新增配置,配置完成後重啓工程:JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"。
系統重啓後,每小時獲取一次系統的配置情況。
當管理者登入資料決策系統,打開【系統檢查】頁面時,系統自動進行檢查,獲取最近一次的系統配置,更新檢查結果。
在【系統檢查】頁面,管理者可開啓【系統自動檢查】。如下圖所示。
開啓後,系統在每日凌晨 1 點進行自動檢查,存在不合理配置時可透過【簡訊提醒】、【平台訊息】、【郵件提醒】 三種形式通知管理者。
注1:【簡訊提醒】需要開啓簡訊平台,詳細點擊 簡訊 。
注2:【郵件提醒】需要配置郵件伺服器,詳細點擊 郵箱 。
注3:【平台訊息】需要在負載均衡層面配置websocket埠並且開放,詳細點擊 Websocket埠被佔用/無法使用 。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉