反饋已提交
網絡繁忙
企業在管理帆軟應用(FineReport、FineBI)的程式中,常常會遇到一些痛點和挑戰:
1)低效的維運流程:應用管理者維運經驗不足,專業維運人員又無法深入解決應用問題,傳統維運流程耗時耗力,導致企業維運效率低下,影響業務的正常運轉。
2)不足的監視手段:維運人員可能無法準確監視項目的效能和可用性,缺乏維運程式中必要的工具和技術。
3)多項目管理混亂:企業可能有多個項目運作,而這些項目由不同的部門或團隊負責管理,導致版本不統一、部署環境各異,難以進行統一的維運管理。
因此帆軟推出「FineOps維運平台(為企業提供帆軟應用穩定運作和全方位維運管理的解決方案)」,幫助企業更好地解決以上問題。
針對常見的維運監視訴求場景,給出現有的維運監視功能方案介紹,幫助客戶快速實現對於 FineReport 和 FineBI 應用的維運監視。
方案適用於已經完成部署的帆軟系統,將會展開介紹帆軟應用的日常維護、管理和監視方式。
帆軟應用對系統有一定的配置要求,如果配置不符合要求可能出現使用異常、當機等風險,因此需要定期對環境及應用的配置情況進行檢查,以確定應用的健康運作。
同時管理者需要關注應用的運作狀況,即時透過維運手段規避風險或在問題發生後定位並進行排除,實現應用的持續高可用。
本文方案將從以下幾個方面展開介紹帆軟應用的具體維運方式:
注:鑑於伺服器情況不同,沒有完全通用的解決方案。部分檢查項僅提供推薦配置值,請自行百度修改方案。
1)關注磁碟的效能和使用情況,防止影響業務的正常運作
2)關注磁碟剩餘空間,防止出現磁碟空間不足導致系統運作受影響
當應用出現異常時,當機可能會隨之發生
1)快速恢復應用
2)記錄當機日誌,進行問題定位和排查
本章主要介紹帆軟應用內的主要配置檔案資訊及其詳細說明。
1)檔案位置
%FRBI_HOME%\webapps\webroot\WEB-INF\config\db.properties
2)檔案內容
數據決策系統中除平台屬性配置以外的所有資訊,包括目錄樹設定、範本定時任務資訊等,均儲存於 FineDB 資料庫。
FineReport/FineBI 支援使用內建 FineDB 資料庫或啟動外接 FineDB 資料庫。
工程配置了外接資料庫後,方在WEB-INF/config中生成一個db.properties檔案。FineDB 資料庫是否外接由 db.properties 檔案控制。
3)檔案關鍵資訊
db.properties檔案中,常見配置關鍵字與其內容對應關係如下。
注:為了防止修改錯誤導致系統出錯,不建議手動修改db.properties檔案。
2:Read Commited 可讀已提交
1:Read Uncommited 可讀未提交
平台中有些配置資訊記錄在 FineDB 的 fine_conf_entity 表中,只能透過修改表欄位來進行更改。
使用者可透過「fine_conf_entity視覺化配置插件」安全地修改相關配置。
注:請勿使用該插件以外的方法修改 FineDB 檔案,有可能造成不可修復的 BUG,需自行承擔後果。
可修改的配置內容及修改方式請參見:FINE_CONF_ENTITY視覺化配置
建議管理者使用「健康巡檢」功能,對系統進行定期巡檢,確定應用所在的環境及應用內配置合理,以保證應用的正常運作。
巡檢內容包括系統檢查、系統運作狀態、埠檢查、網路檢查、服務聯通性檢查、業務檢查、環境檢查、磁碟檢查、非容器化部署檢查、虛擬機檢查。
系統檢查的檢查項包括:
巡檢項
編號
叢集節點是
否分別檢查
是否支援
快速修復
僅匯出資訊
檢查主頻大於等於 2.4 gh
建議主頻大於等於 2.4 gh
檢查覈心數大於 4 核
cpu 核心數推薦大於 4
檢查記憶體是否大於等於15.5GB
建議物理記憶體大於等於16G
檢查是否關閉SWAP配置
匯出交換分割槽大小
建議關閉SWAP配置
1)查看當前系統中是否啟動了swap分割槽
使用以下命令查看系統中已經啟動的swap分割槽資訊:
sudo swapon -s
如果匯出結果為空,則表示當前沒有啟動swap分割槽。2)關閉swap分割槽
使用以下命令關閉swap分割槽:
sudo swapoff -a
該命令將關閉所有已經啟動的swap分割槽。
3)永久禁用swap分割槽
為了避免系統在下一次啟動時自動啟動swap分割槽,需要在系統配置檔案中進行相應的修改。
以Ubuntu為例,可以按照以下步驟操作:
修改/etc/fstab檔案,找到含有swap的列並註釋掉或刪除該列。
執行以下命令更新grub引導程式:
sudo update-grub
4)驗證swap分割槽是否已經關閉
重啟系統後,可以再次執行sudo swapon -s命令查看系統中是否存在已經啟動的swap分割槽。
如果匯出結果為空,則表示swap分割槽已經成功關閉。
系統運作狀態的檢查項包括:
包括:本次啟動的耗時
包括:目錄路徑
注:僅檢查本地,不檢查檔案伺服器。
檢查工程WEB-INF下一層的每個資料夾大小
健康:不存在大於5G的資料夾
不健康:存在大於5G的資料夾
修改建議:
建議檢查確認對應資料夾的內容並進行清理
提示出超過5G大小的資料夾路徑
包括:插件名、插件版本、插件是否啟動
包括:工程是否註冊
包括:是/否
包括:工程各個模組的版本和JAR包日期
包括:目錄路徑、目錄剩餘可用空間
檢查是否使用javaw後台運作tomcat
健康:使用javaw後台運作tomcat
不健康:未使用javaw後台運作tomcat
修改建議:建議使用javaw後台運作tomcat
1)WEB-INF資料夾存放着什麼
FineReport:FineReport報表安裝目錄結構
2)哪些檔案可清理
%BI_HOME%\webapps\webroot\WEB-INF\schedule
2)檔案用途:
儲存排程管理任務產生的中間檔案
3)可清理範圍:保留最近一年的檔案,其餘均可清理4)清理級別:
建議清理
檔案層級直接展示到具體的日期(日級別),使用者手動選擇需要清理的範圍即可
推薦清理12個月之外的檔案
12個月之內的檔案不顯示
%BI_HOME%\webapps\webroot\WEB-INF\treasures2)檔案用途:雲端健檢分析日誌打包檔案3)清理級別:
3)清理方式
管理者登入數據決策系統,點選「管理系統>智慧維運>磁碟維運>磁碟清理」。
選擇需要掃描的檔案類型,點選「開始掃描」,立即開始掃描可以手動清理的冗餘檔案。
原因分析:
Windows系統中,tomcat容器下部署的工程,如果不使用後台模式啟動,而是使用視窗模式啟動,可能會因為誤點視窗,導致視窗進入編輯插入狀態,阻擋日誌匯出,進而導致工程卡死。
因此建議Windows系統中,tomcat容器下部署的工程,tomcat使用後台模式啟動。
操作步驟:
先修改預設啟動模式為javaw。為了防止重複啟動,重新整理增腳本檢查啟動命令,按任意鍵即可結束腳本。
1)修改setclasspath.bat
開啟%Tomcat_HOME%\bin\setclasspath.bat,找到並修改set _RUNJAVA的值:
set _RUNJAVA="%JRE_HOME%\bin\javaw.exe"
2)修改catalina.bat
開啟%Tomcat_HOME%\bin\catalina.bat,在最後加上判斷提示:
set ENV_VAR_VALUE=%_EXECJAVA%echo %ENV_VAR_VALUE% | findstr /C:"javaw" >nulif %errorlevel% equ 0 ( echo tomcat is running in the background pause)
埠檢查的檢查項包括:
包括:埠號
檢查叢集埠是否暢通
健康:埠間暢通
不健康:埠存在不暢通
修改建議:叢集埠連結性狀態異常
檢查:
1)當機自動檢查是否開啟
2)當機埠是否暢通
優化建議:建議開啟當機檢查並保證埠可用
WebSocket 主要用於重新整理 token、使用者被踢出、平台訊息、記憶體和 CPU 顯示、平台日誌處當前系統線上人數、資料連結編輯狀態的確定。
WebSocket 不開放影響 socket 通訊,存取可能異常斷開。
使用者可根據自己的工程情況選擇合適的 WebSocket 埠配置方法,詳情請參見下表:
只需使用者環境滿足生效條件,則自動使用該方案
若使用者環境不滿足生效條件,則可考慮自行配置socket.io方案
管理者登入資料決策平台,點選「管理系統>智慧維運>叢集配置」。
可查看叢集各個節點的埠,無法使用的節點飄紅。
可編輯節點埠,滑鼠懸浮即可出現編輯按鈕。
管理者資料決策平台,點選「管理系統>智慧維運>當機處理」。
可查看當機自動處理工具使用的埠。預設埠為12100。
可修改埠,點選「儲存」即可。
可點選「測試」,測試埠可用性。
檢查檔案伺服器、外接資料庫、狀態伺服器和應用之間通訊是否正常,是否能夠ping通,是否存在丟包情況。
磁碟檢查的檢查項包括:
包括:順序讀取的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」)
注:windows系統下若權限不足,請手動使用命令檢查「winsat disk -drive 盤符 -seq -read」
包括:順序寫的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」)
注:windows系統下若權限不足,請手動使用命令檢查「winsat disk -drive 盤符 -seq -write」
包括:每秒建立小檔案個數
包括:每秒刪除小檔案個數
1)FineReport:
健康:磁碟總大小≥100GB
不健康:磁碟總大小<100GB
修改建議:建議磁碟總大小高於100GB
2)FineBI:
健康:磁碟總大小≥400GB
不健康:磁碟總大小<400GB
修改建議:建議磁碟總大小高於400GB
包括:已使用的磁碟空間大小
健康:磁碟餘量高於10GB
不健康:磁碟餘量不足10GB
修改建議:磁碟餘量不足10GB,建議清理磁碟大檔案避免影響使用
健康:磁碟餘量高於50GB
不健康:磁碟餘量不足50GB
修改建議:磁碟餘量不足50GB,建議清理磁碟大檔案避免影響使用
包括:非緩衝池順序讀取的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」)
包括:非緩衝池順序寫入的速度(若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」)
非容器化部署的檢查項包括:
包括:帳號稱
包括:快取資料夾、resources、assets、assist、finedb的權限
注:檔案伺服器權限不匯出。
健康:帆軟應用所需最大記憶體+其他進程使用記憶體<總物理記憶體
不健康:帆軟應用所需最大記憶體+其他進程使用記憶體≥總物理記憶體
修改建議:建議帆軟工程不要與其他應用服務共用伺服器,否則會有當機風險
環境檢查的檢查項包括:
健康:vm.max_map_count≥262144
不健康:vm.max_map_count<262144
修改建議:建議配置 vm.max_map_count 參數為 262144
健康:open_files≥65536
不健康:open_files<65536
修改建議:建議open_files參數配置不低於65536
健康:open_files≥131070
不健康:open_files<131070
修改建議:建議open_files參數配置不低於131070
健康:overcommit_memory=0
不健康:overcommit_memory≠0
修改建議:建議vm.overcommit_memory參數配置為0
健康:overcommit_ratio=50
不健康:overcommit_ratio≠50
修改建議:建議vm.overcommit_ratio參數配置為50
檢查是否配置了export MALLOC_ARENA_MAX參數
健康:export MALLOC_ARENA_MAX=1
不健康:未配置/配置其他值
修改建議:建議配置export MALLOC_ARENA_MAX=1
1)參數簡介:
vm.max_map_count是一個Linux系統核心參數,用於控制在一個進程中允許mmap映射記憶體區域的最大數量。
如果該參數的值太小,那麼在使用一些應用程式時,可能會出現記憶體映射錯誤。
2)建議配置:
建議配置 vm.max_map_count 參數為 262144
3)修改方式:
在/etc/sysctl.conf檔案中新增/修改參數值
vm.max_map_count=262144
運作以下命令使更改生效
sysctl -p
open_files是指一個進程可以同時開啟的檔案描述符的最大數量。
檔案描述符是Unix系統中用於存取檔案(包括管道、套接字和其他檔案操作)的唯一識別符號。
建議FineReport工程的open_files參數配置不低於65536
建議FineBI工程的open_files參數配置不低於131070
修改參數配置
開啟Linux的軟硬體限制檔案/etc/security/limits.conf,在檔案尾部新增如下程式碼:
* soft nofile 65536
* hard nofile 65536
上述命令中,hard表示系統的硬限制,soft表示使用者的軟限制。
重啟工程並重新登入
配置完成後,終端使用者重新登入,並重啟Tomcat工程,配置方可生效。
可使用ulimit -n命令,根據回傳值確認是否修改成功。
vm.overcommit_memory 是一個Linux核心參數,它控制了系統是否允許進程分配超過可用記憶體的記憶體量。
當參數值為0時,核心將檢查是否有足夠的可用記憶體來滿足提交的記憶體需求。如果有足夠的閒置記憶體,則允許進程繼續分配記憶體;否則分配請求將失敗並傳回錯誤。
建議vm.overcommit_memory參數配置為0
vm.overcommit_memory=0
vm.overcommit_ratio 是一個 Linux 核心參數,它指定了系統 VMware 超大頁管理器(Memory Ballooning)和 Swap 空間使用的比例。
當參數值為50時,核心使用適當的 Swap 兩倍大小作為另一個備用空間,用於模擬物理記憶體。
建議vm.overcommit_ratio參數配置為50
vm.overcommit_ratio=50
為了防止glibc中的記憶體泄漏,可以透過在環境變數中設定MALLOC_ARENA_MAX來限制glibc在分配和釋放動態記憶體時使用的堆空間數量。
建議配置export MALLOC_ARENA_MAX=1
關閉Tomcat伺服器。
進入%Tomcat_HOME%/bin目錄,開啟 startup.sh 檔案。
在檔案開頭新增/修改列:export MALLOC_ARENA_MAX=1
儲存對 startup.sh 檔案的修改並關閉。
在終端中運作 startup.sh 檔案,重啟Tomcat並應用新的環境變數設定。
Java虛擬機的檢查項包括:
健康:
FR:堆外NIO記憶體為2GB
BI:堆外NIO記憶體為4GB
不健康:堆外NIO記憶體配置了且不是2GB
修改建議:建議配置JVM NIO佔用堆外記憶體2GB
健康:堆外fineIO讀記憶體為2GB或未配置該參數
不健康:堆外fineIO讀記憶體配置了且不是2GB
修改建議:建議JVM fineIO讀記憶體使用堆外記憶體設定為2G
健康:堆外fineIO寫記憶體為1GB或未配置該參數
不健康:堆外fineIO寫記憶體配置了且不是1GB
修改建議:建議JVM fineIO寫記憶體使用堆外記憶體設定為1G
健康:垃圾回收器類型為 ParallelScavenge
不健康:垃圾回收器類型不是 ParallelScavenge
修改建議:建議JVM使用垃圾回收器類型為ParallelScavenge
健康:不配置DisableExplicitGC參數
不健康:配置了DisableExplicitGC參數
修改建議:建議取消DisableExplicitGC參數配置
健康:高於帆軟內建JAVA版本(一般在1.8.202及以上版本)不健康:低於帆軟內建JAVA版本
修改建議:建議使用1.8.202及以上版本JDK
健康:已配置-Djava.awt.headless=true
不健康:未配置-Djava.awt.headless=true
修改建議:建議配置 -Djava.awt.headless=true 以啟動 headless 模式
健康:已配置HeapDumpOnOutOfMemoryError及HeapDumpPath
不健康:未配置HeapDumpOnOutOfMemoryError及HeapDumpPath
修改建議:建議配置HeapDumpOnOutOfMemoryError及HeapDumpPath以保證正常匯出dump
健康:-XX:PerBytecodeRecompilationCutoff=-1
不健康:-XX:PerBytecodeRecompilationCutoff≠-1
修改建議:建議配置-XX:PerBytecodeRecompilationCutoff=-1
健康:-XX:PerMethodRecompilationCutoff=-1
不健康:-XX:PerMethodRecompilationCutoff≠-1
修改建議:建議配置-XX:PerMethodRecompilationCutoff=-1
注:FineBI特有檢查項
健康:非exe方式部署不健康:exe方式部署修改建議:建議使用web容器方式部署。詳情請參見:Tomcat伺服器部署
FR:
健康:-XX:ReservedCodeCacheSize≥512m
不健康:-XX:ReservedCodeCacheSize<512m
修改建議:建議配置-XX:ReservedCodeCacheSize=512m
BI:
健康:-XX:ReservedCodeCacheSize≥1024m
不健康:-XX:ReservedCodeCacheSize<1024m
修改建議:建議配置-XX:ReservedCodeCacheSize=1024m
健康:-Duser.country=TW
不健康:-Duser.country≠TW
修改建議:建議配置-Duser.country=TW
健康:-Duser.language=tw
不健康:-Duser.language≠tw
健康:-Dsun.zip.disableMemoryMapping=true
不健康:-Dsun.zip.disableMemoryMapping≠true
健康:-XX:NewRatio=2
不健康:-XX:NewRatio≠2
修改建議:建議堆內老年代與新生代大小比例為 2,即-XX:NewRatio=2
健康:-Xss≤1024
不健康:-Xss>1024
健康:未配置參數 -agentlib:jdwp 和 -Xrunjdwp
不健康:配置了參數 -agentlib:jdwp 和 -Xrunjdwp
健康:根據系統實際情況計算出一個符合健康標準的堆內記憶體要求範圍,當前堆內記憶體在計算出的符合要求的堆內記憶體範圍內
不健康:當前堆內記憶體不在計算出的符合要求的堆內記憶體範圍內
修改建議:為保證應用回应效能,建議配置為XGB
FineBI額外提醒:如果需要使用更大記憶體,在保證物理機記憶體充足的情況下,可以配置為48G~64G,但可能帶來一定的回应效能下降
健康:Xms=Xmx
不健康:Xms≠Xmx
修改建議:建議配置Xms=Xmx
健康:-XX:MaxMetaspaceSize≥2G
不健康:-XX:MaxMetaspaceSize<2G,或未配置
修改建議:建議最大元資料空間設定為2g
1)建議值
FR:建議配置JVM NIO佔用堆外記憶體2GB
BI:建議配置JVM NIO佔用堆外記憶體4GB
2)修改方式
NIO由-XX:MaxDirectMemorySize這個參數控制。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 NIO記憶體 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下列來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"
建議JVM fineIO讀記憶體使用堆外記憶體設定為2G。
fineIO 讀記憶體由-Dfineio.read_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO讀記憶體 的步驟。
讀記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2
JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"
建議JVM fineIO寫記憶體使用堆外記憶體設定為1G。
fineIO 寫記憶體由-Dfineio.write_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。本節展示 Tomcat 環境下設定 fineIO寫記憶體 的步驟。
寫記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1
JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"
建議 JVM 使用垃圾回收器類型為 ParallelScavenge
本節以工程部署在 Tomcat 上為例, 介紹設定垃圾收集器為Parallel Scavenge(並行收集器)的方法。
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParallelGC
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
建議不對 DisableExplicitGC 參數進行配置,此項配置會導致 System.gc()被禁用,影響系統穩定性。
-XX:+DisableExplicitGC參數的作用是禁用 System.gc()。System.gc() 是一種保護機制,例如堆外記憶體滿時清理它的堆內引用物件。使用者需要根據實際情況選擇是否使用該參數,建議刪除該參數。
本節展示 Tomcat 環境下刪除 DisableExplicitGC 參數的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為catalina.bat和setenv.bat的檔案。
在檔案中尋找是否存在XX:+DisableExplicitGC,若存在,刪除相關配置,修改完成後重啟工程。
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為catalina.sh和setenv.sh的檔案。
建議使用「JDK8」中 1.8.0_181 及以上版本
2)檢查方式
cmd 命令行進入%Tomcat_home%\bin路徑下,輸入version,即可查看 JDK 版本。如下圖所示:
建議配置 -Djava.awt.headless=true 以啟動 headless 模式
headless 模式是系統的一種工作模式,如果系統屬性 java.awt.headless被設定true,那麼headless工具包就會被使用。
本節展示 Tomcat 環境下啟動 headless 模式的步驟。
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
建議配置HeapDumpOnOutOfMemoryError 及 HeapDumpPath以保證正常匯出dump
1)-XX:+HeapDumpOnOutOfMemoryError參數表示當JVM發生OOM時,自動生成DUMP檔案。
2)-XX:HeapDumpPath=${目錄}參數表示生成dump檔案的路徑,也可以指定檔案名稱,例如:-XX:HeapDumpPath=${目錄}/java_heapdump.hprof。
如果不指定檔案名稱,預設為:java_<pid>_<date>_<time>_heapDump.hprof。
本節展示 Tomcat 環境下設定dump匯出的步驟。
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目錄}
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目錄}"
建議recompilationCutoff相關參數配置值為-1
沒有配置 RecompilationCutoff 參數/配置的 RecompilationCutoff 參數太小,可能會導致 spider 引擎資料更新緩慢。
本節展示 Tomcat 環境下設定 recompilationCutoff 參數的步驟。
set JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1
JAVA_OPTS="$JAVA_OPTS -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1"
注:僅FineBI系統檢查該項
建議使用web容器方式部署。詳情請參見:Tomcat伺服器部署
FR:建議配置-XX:ReservedCodeCacheSize=512m
BI:建議配置-XX:ReservedCodeCacheSize=1024m
ReservedCodeCacheSize參數是調整記憶體大小的一個設定參數,值的大小設定直接影響到Code Cache的大小。
如果Code Cache的空間不足,可能會導致JVM無法正常運作,導致效能持續降低。
set JAVA_OPTS=%JAVA_OPTS% -XX:ReservedCodeCacheSize=250m
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=250m"
建議配置-Duser.country=TW、-Duser.language=tw
為了防止中文出現亂碼現象,要配置好Tomcat 的語言編碼。
set JAVA_OPTS=%JAVA_OPTS% -Duser.country=TW -Duser.language=tw
JAVA_OPTS="$JAVA_OPTS -Duser.country=TW -Duser.language=tw"
建議配置-Dsun.zip.disableMemoryMapping=true
配置該參數,可預防 jvm crash
set JAVA_OPTS=%JAVA_OPTS% -Dsun.zip.disableMemoryMapping=true
JAVA_OPTS="$JAVA_OPTS -Dsun.zip.disableMemoryMapping=true"
建議 JVM 老年代與新生代大小比例設定為 2
堆內老年代與新生代大小比例建議為 2(-XX:NewRatio=2,JVM的預設值);NewRatio 大小正常生效需要使用者不限制新生代大小。
在設定-Xmx、-Xms參數的位置,新增 NewRatio 的值即可,本節展示 Tomcat 環境下設定 NewRatio 的步驟。
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -XX:NewRatio=2
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"
建議單執行緒使用棧空間不超過1024KB
建議單執行緒使用棧空間不超過1024KB,即 -Xss 的值不超過 1024 。
在設定-Xmx、-Xms參數的位置,新增 -Xss 的值即可,本節展示 Tomcat 環境下設定 -Xss 的步驟。
Windows:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.bat的檔案。如果檔案不存在,可以建立一個新的setenv.bat檔案。在檔案中新增以下行來設定,配置完成後重啟工程。
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -Xss1024K
Linux:進入%Tomcat_HOME%\bin目錄。尋找名為setenv.sh的檔案。如果檔案不存在,可以建立一個新的setenv.sh檔案。在檔案中新增以下行來設定,配置完成後重啟工程。
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
建議取消debug模式
debug模式由兩個參數控制:-agentlib:jdwp 和 -Xrunjdwp,刪除這兩個參數即可取消debug模式
Windows:在%Tomcat%/bin目錄下的catalina.bat和setenv.bat檔案中刪除-agentlib:jdwp 和 -Xrunjdwp參數,配置完成後重啟工程。
Linux:在%Tomcat%/bin目錄下的catalina.sh和setenv.sh檔案中刪除-agentlib:jdwp 和 -Xrunjdwp參數,配置完成後重啟工程。
-Xmx 參數:最大堆內記憶體
-Xms 參數:初始化記憶體大小
注1:Xmx/Xms 與數字之間不要有空格
注2:建議配置Xms=Xmx,以防止記憶體擴容失敗情況
元資料空間(Metaspace)是 Java 虛擬機(JVM)用於儲存類元資料的區域。在 JVM 中,元資料包括類的結構資訊、方法資訊、欄位資訊等。
元資料空間配置 MaxMetaspaceSize 用於設定元資料空間的最大大小。當元資料空間超過這個限制時,JVM 會發生垃圾回收以釋放不再使用的元資料。
建議配置 MaxMetaspaceSize 參數為 2G
本節展示 Tomcat 環境下設定 MaxMetaspaceSize 的步驟。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxMetaspaceSize=2G
JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=2G"
服務聯通性檢查的檢查項包括:
是否為宕
機檢查項
業務檢查的檢查項包括:
檢查finedb資料庫的類型
健康:finedb遷移到了外接資料庫
不健康:finedb使用內建HSQL資料庫
修改建議:建議將finedb遷移至更穩定的外接資料庫中。
檢查「管理系統>智慧維運>平台日誌>全局設定」中的「系統日誌級別」
健康:日誌級別高於debug級別
不健康:日誌級別為debug級別
修改建議:建議設定日誌級別為 info。
檢查「管理系統>智慧維運>平台日誌>全局設定」中「自動清理」週期
健康:配置了自動清理,自動清理超過三個月的日誌
不健康:未配置自動清理
修改建議:建議開啟平台日誌自動清理並配置清理週期小於六個月。
檢查「管理系統>智慧維運>備份還原>全局設定」中設定的自動備份可佔用磁碟大小
健康:各模組自動備份可佔磁碟不超過1024M
不健康:各模組自動備份可佔磁碟超過1024M
修改建議:建議各模組自動備份可佔磁碟不超過1024M。
檢查「管理系統>智慧維運>備份還原>全局設定」中設定的自動備份保留數量
健康:各模組成功/失敗自動備份可分別保留不超過5份
不健康:各模組成功/失敗自動備份可分別保留超過5份
修改建議:建議自動備份預設儲存不超過5份。
檢查排程管理任務>調度物件中,檔案處理方式的設定
健康:僅保留最近一次或任務結束即清理
不健康:其他檔案處理方式
修改建議:建議排程管理調度物件檔案處理設定為「僅保留最近一次」。
檢查「管理系統>系統管理>標準>BI參數」 中的「資料存取量」參數
健康:不超過100w
不健康:超過100w
修改建議:建議資料存取量不超過100w。
檢查系統的spider_fast_compute_limit_unit參數值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值不超過10000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值超過10000000
檢查系統的spider_fast_compute_limit_memory參數值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值不超過500000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值超過500000000
檢查系統的spider_update_fast_compute_limit_cell參數值
健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值不超過100000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值超過100000000
檢查系統的spider_fast_compute_limit_row參數值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值不超過10000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值超過10000000
檢查系統的spiderConfig.spark_driver_maxResultSize參數值
健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值不超過10000000
不健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值超過10000000
包括finedb外接資料庫的資料庫編碼/字元集
外接資料庫配置步驟請參見:配置外接資料庫
檢查「管理系統>智慧維運>叢集配置>參數配置」中的內部轉發參數
叢集參數配置請參見:叢集參數配置
檢查「管理系統>系統管理>標準>抽取參數」 中的「更新高效能時間區間」參數
BI參數配置請參見:BI/Spider參數
檢查系統是否配置二級快取
二級快取開啟及配置請參見:指定ehcache快取路徑
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的sql執行時長限制
健康:開啟了sql執行時長限制
不健康:未開啟sql執行時長限制
修改建議:建議開啟記憶體管理-範本限制-通用限制-sql執行時長限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單範本儲存格限制
健康:開啟了單範本儲存格限制
不健康:未開啟單範本儲存格限制
修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制-單範本儲存格限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的匯入Excel儲存格限制
健康:開啟了匯入Excel儲存格限制
不健康:未開啟匯入Excel儲存格限制
修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制-匯入excel儲存格限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單資料集列數限制
健康:開啟了單資料集列數限制
不健康:未開啟單資料集列數限制
修改建議:建議開啟系統管理-智慧維運-記憶體管理-範本限制-通用限制- 單資料集列數限制功能。
檢查「管理系統>智慧維運>負載管理>負載監視」中是否開啟「智慧預警」
詳情請參見:負載管理
檢查是否存在髒資料
健康:0條髒資料
不健康:x條髒資料
修改方法:有X條髒資料,建議在「BI工具」-「檢查」-「髒資料」中進行排查清理
檢查系統是否開啟雲端健檢分析
雲端健檢分析功能請參見:雲端健檢分析
檢查「管理系統>系統管理>登入」中是否開啟「密碼強度限制」
健康:開啟了密碼強度限制
不健康:未開啟密碼強度限制
修改建議:未開啟密碼強度限制,密碼強度較低可能容易被攻擊,導致安全問題,建議在[管理系統]-[系統管理]-[登入]中開啟密碼強度限制
管理者登入帆軟應用,點選「管理系統>系統管理>標準>外接資料庫」,將finedb遷移至更穩定的外接資料庫中。
外接資料庫遷移的具體操作步驟請參見:配置外接資料庫
管理者登入帆軟應用,點選「管理系統>智慧維運>平台日誌>全局設定」。
在「系統日誌級別」中設定日誌級別為 info,點選「儲存」即可。
日誌級別設定請參見:日誌簡介
在「操作日誌清理」中開啟「自動清理」並配置清理週期小於六個月。
操作日誌自動清理設定請參見:日誌簡介
管理者登入帆軟應用,點選「管理系統>智慧維運>備份還原>全局設定」。
在「自動備份」中,建議各模組自動備份可佔磁碟不超過1024M。備份還原設定請參見:备份还原
在「自動備份」中,建議自動備份預設儲存不超過5份。備份還原設定請參見:备份还原
管理者登入帆軟應用,在「排程管理」中,對「排程管理任務>調度物件」的檔案處理方式設定為「僅保留最近一次」。
排程管理任務設定請參見:排程管理任務設定
管理者登入帆軟應用,點選「管理系統>系統管理>標準>BI參數」 。
建議「資料存取量」參數值不超過100w。BI參數配置請參見:BI/Spider參數
「快速分析儲存格數限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit參數值不超過10000000
點選「儲存」,並重啟FineBI工程,配置生效。
「快速分析記憶體大小限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory參數值不超過500000000
「快速分析更新儲存格數限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell參數值不超過100000000
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row參數值不超過10000000
「spark計算結果記憶體大小限制」的配置資訊記錄在 FineDB 的 fine_conf_entity 表中。
請透過「fine_conf_entity視覺化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize參數值不超過10000000
管理者登入帆軟應用,點選「管理系統>智慧維運>負載管理>範本限制>通用限制」。
建議開啟sql執行時長限制功能。範本限制請參見:範本限制
建議開啟單範本儲存格限制功能。範本限制請參見:範本限制
建議開啟匯入excel儲存格限制功能。範本限制請參見:範本限制
建議開啟單資料集列數限制功能。範本限制請參見:範本限制
管理者登入帆軟應用,點選「BI工具>檢查>髒資料」。
檢查系統中的髒資料,並進行排查清理。
管理者登入帆軟應用,點選「管理系統>系統管理>登入」 。
在「密碼策略設定」中,建議開啟「密碼強度限制」,並自訂設定密碼強度。
詳情請參見:密碼策略設定
在應用日常的正常運作程式中,維護交易相對簡單,在有需要的時候能夠查看應用的運作日誌,或查看應用的各項監視指標是否存在異常即可
應用日常的維護工作中,經常會需要對應用進行啟停重啟等操作。
單機環境依賴較少,無嚴格順序需求。
叢集環境相關組件較多,為儘量降低應用使用的風險,請儘量按以下順序進行啟停
由於應用的正常運作對組件有依賴,因此需要先啟動相關組件,再啟動應用。順序為:
1)負載均衡組件(Nginx)
2)狀態伺服器組件(Redis)
3)檔案伺服器組件(FTP)
4)外接資料庫組件(Mysql)
5)帆軟應用(叢集依次啟動各節點即可)
各組件和應用可以配置開機自啟動,便於在重啟伺服器後自動啟動恢復服務:
Redis叢集開機自啟動
Redis單機開機自啟動
Nginx 開機自啟動腳本
Linux下Tomcat開機自啟動
Windows下Tomcat開機自啟動
對於應用的停止順序沒有嚴格要求,但由於組件的關閉會直接導致應用不可用,因此建議先關閉帆軟應用(kill命令避免進程殘留),再關閉各個組件
1)內容說明
帆軟應用通常涉及以下幾類日誌:
預設儲存在%FR_HOME%\logs\fanruan.log
設計器端允許修改日誌儲存位置
伺服器端不允許修改日誌儲存位置
儲存在%FR_HOME%\webapps\webroot\logs\cubes
允許修改日誌儲存位置
FineReport11.0.4/FineBI5.1.22及之後版本支援實時備份
儲存在%FR_HOME%\bin\error.txt
不允許修改日誌儲存位置
Tomcat部署情況下存在
預設儲存在%FR_HOME%/logs
2)如何透過帆軟功能快捷維運
帆軟提供下載日誌功能,管理者登入數據決策系統,點選「管理系統>智慧維運>平台日誌」,其中「下載日誌」Tab提供相應功能。
透過此功能可實現下載指定時間的指定日誌,並支援查看日誌儲存位置。
1)指標說明
日常運作中,維運人員主要需要關注以下各指標是否存在異常:
帆軟提供記憶體管理頁面,點選「管理系統>智慧維運>負載管理」,其中「負載監視」Tab提供相應功能(11.0.3及之前版本叫「記憶體管理」及「記憶體監視」)
透過此功能可實現視覺化查看帆軟應用而非整個伺服器的近期「負載曲線」、「記憶體曲線」和「CPU曲線」,快速瞭解帆軟應用運作及壓力狀況。
帆軟提供磁碟維運功能,點選「管理系統>智慧維運>磁碟維運」,其中「磁碟使用情況分析」Tab提供相應功能(11.0.3及之前版本暫不支援)
透過此功能可實現視覺化查看帆軟應用重點相關磁碟目錄的使用情況,即時避免出現磁碟不足。
如需對帆軟應用的異常即時感知,需實現對帆軟應用各項指標的監視警報,實現的方案有以下幾點建議:
1)如使用的是雲伺服器(如阿里雲、華為雲等),可使用雲服務廠商提供的監視類雲服務,對伺服器的資源異常進行監視
2)自行開發實現對於帆軟應用的監視,如基於promthues組件等
3)針對系統負載過高的場景,帆軟提供智慧預警功能,檢查到負載狀態過高時將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>負載管理」,其中「負載監視」內可進行智慧預警配置。
4)針對系統出現當機的場景,帆軟提供當機通知功能,檢查到系統當機時將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」,其中「當機處理」內可進行當機通知配置。
5)針對系統磁碟空間不足的場景,帆軟提供磁碟預警功能,檢查到應用相關磁碟空間不足時,將提醒維運人員。
管理者登入數據決策系統,點選「管理系統>智慧維運>磁碟維運」,其中「磁碟預警設定」tab頁內可進行磁碟預警配置。
當應用出現異常時,當機可能會隨之發生,此時為了業務的可用,需要快速恢復應用,同時應儘量儲存當機時刻的日誌資訊,方便進行當機原因定位及風險排除,避免再次出現類似異常。對於當機,應進行以下維運動作:
1)保證系統環境有jdk工具,當應用發生當機時,即時匯出dump檔案
進入到對應的jdk的bin目錄
以linux+tomcat為例,查看pid的方式為使用ps -ef|grep tomcat管道過濾命令,查看對應的伺服器進行pid。
使用命令jmap -dump:format=b,file=檔案名稱 [pid]來生成dump。
2)自行開發對帆軟應用是否存活的監視,並在發現其不可用時告知到維運人員,並透過自動化腳本重啟應用,或人工進行監視及應用重啟
重啟或停止應用時需確定完全關閉工程相關進程,詳情請參見:關閉或重啟FineReport工程
3)在當機發生後自行透過dump分析當機原因或聯絡技術支援協助定位,並儘快排除當機風險。
4)針對當機場景,帆軟提供應用存活監視功能,管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」。
透過「當機處理」可以實現當機訊息通知,當機日誌自動匯出,及當機後自動重啟恢復。
5)針對當機定位,帆軟提供當機自助處理功能,管理者登入數據決策系統,點選「管理系統>智慧維運>當機處理」。
透過「當機自助精靈」可以對大多數的當機原因給出分析結果並提供改進建議。
帆軟系統需要定期進行備份,以確定在使用者誤操作、版本回退等場景下能夠即時恢復,備份及還原方式如下:
1)自行備份:
定期將完整工程copy並壓縮後,放在磁碟空間充足的目錄或其他伺服器上,並定期備份工程的外接配置資料庫
2)透過帆軟功能進行備份還原:
帆軟平台提供備份還原的功能,支援對「平台配置」、「報表範本」、「BI範本」、「JAR 包」、「插件」進行備份還原。
預設備份路徑為../backup,備份檔案儲存在工程的%FR_HOME%/webapps/webroot/backup資料夾下,支援修改為其他備份路徑,在「全局設定」中進行配置
備份方式分為自動及手動,手動備份即手動建立一份備份,自動備份則按照設定的自動備份「備份頻率」、「份數上限」、「備份容量」、「備份失敗提醒」進行定期自動備份
備份內容如下:
備份%FineBI%\webapps\webroot\WEB-INF\dashboards資料夾中的範本
選擇手動備份/自動備份下備份的檔案,點選「還原按鈕」,「確認」後即可進行還原,還原後重啟伺服器即可生效
不同內容還原生效的方式略有差別,詳情如下表所示:
重啟工程後,還原生效
注:平台配置處,不支援 2019-11-08 到 2020-07-17 的
無需重啟,立即生效
當前工程下沒有、備份中有的範本會新增
當前工程下有、備份中有的範本會改寫更新
當前工程下有、備份中沒有的範本會保留
無需重啟,立即生效。但需同時還原「平台配置」,方可恢復儀表板
還原後,當前工程下的所有儀表板都會被刪除,更換為備份的儀表板
帆軟產品會持續不斷的迭代更新,可能增加新的功能或針對歷史版本存在的問題進行修復,為了能獲得更好的功能體驗,客戶往往也要跟隨更新版本,本章僅介紹小版本升級方式,大版本升級請聯絡帆軟技術人員進行協助,具體更新升級方式如下:
1)決策平台管理升級(不適用於BI):
開啟數據決策系統,在「管理系統>智慧維運>備份還原>更新升級」點選「立刻更新」按鈕,等待更新 JAR,成功後重啟 Web 伺服器即可。
2)升級前需確定已進行備份操作,保證升級程式或升級後出現異常可以即時恢復可用狀態不至於造成損失,備份方法可參考上一節
3)人工更新 JAR 包:使用者可以獲取 JAR 包後手動更換更新, linux 系統和 windows 系統下操作方式一致。
4)使用者可以向帆軟技術人員索要升級jar包,獲取後,更換伺服器工程 %TOMCAT_HOME%/webapps/webroot/WEB-INF/lib下的老jar包,重啟伺服器即可完成升級。
5)BI更新升級前請先運作升級工具,在決策平台中點選「BI升級」進行檢查,按指導處理完成升級風險項後進行人工更新。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙