0119 物理機快取記憶體佔用
0120 當前配置下進程預估最大記憶體佔用
2)系統運作狀態新增檢查項:
0213 部署方式
3)Java虛擬機檢查優化檢查項:
0802 fineIO讀記憶體
0903 fineIO寫記憶體
1)系統檢查新增檢查項
0121 記憶體資源檢查
0122 節點容器記憶體資源檢查
0123 節點容器CPU資源檢查
2)系統檢查優化檢查項
0108 核心數
0109 記憶體大小
3)系統運作狀態新增檢查項
0214 Nginx配置檢查
4)Java虛擬機檢查優化檢查項:
0801 堆外NIO記憶體
0813 codecache配置
0820 堆內記憶體
0823 元資料空間配置
1)系統檢查新增檢查項:
0113 CPU資訊
0114 伺服器字體編碼
0115 伺服器字體包
2)業務檢查新增檢查項:
1025 是否開啟雲端健檢分析
3)非容器化部署資訊新增檢查項:
0603 多進程檢查
4)Java虛擬機檢查新增檢查項
0822 jdk位置
1)磁碟檢查新增檢查項:
0509 順序讀取(非緩衝池)
0510 順序寫入(非緩衝池)
2)磁碟檢查刪除檢查項:
0503 隨機讀
3)磁碟讀寫速度若低於100,則不顯示具體數值,僅提示「速率小於100MB/S」
1)業務檢查新增檢查項:
1026 密碼強度限制檢查
1)環境檢查部分檢查項支援快速修復
0705 gblic記憶體公佈相關配置
2)Java虛擬機檢查部分檢查項支援快速修復
0807 headless模式
0809 BytecodeRecompilationCutoff配置
0810 PerMethodRecompilationCutoff配置
0816 zip相關配置-Dsun.zip.disableMemoryMapping
3)Java虛擬機檢查新增檢查項:
系統運作狀態新增檢查項:
0212 tomcat後台運作
0604 叢集檔案服務方案
2)Java虛擬機檢查新增檢查項:
0824 dump匯出所需磁碟空間
3)業務檢查新增檢查項:
1027 提交記錄數限制
1028 單個圖表匯出資料量限制
1029 範本限制放寬
1030 抽數快取啟動
1031 抽數快取空間限制
1032 決策報表平行計算啟動
1033 當機處理工具開啟
1034 當機處理工具自動匯出堆疊
1035 生命週期設定
1036 spark記憶體比例
1037 更新相關配置
1038 更新sql複雜度限制
0116 CPU效能
0117 系統oom配置
0118 ProcessUnpackaged配置
2)磁碟檢查優化檢查項:
3)環境檢查新增檢查項:
0706 redis淘汰策略
0707 最大進程數nproc
5)業務檢查新增檢查項:
1039 gzip配置
1040 長短查詢配置
1041 logdb配置
1042 記憶體測量配置
1043 引擎配置
1044 外接配置庫連結池配置
業務檢查新增檢查項:
1045 週開始於配置一致
1046 中文排序配置一致
系統檢查0110檢查項重新命名虛擬記憶體
1047 當機處理工具運作狀態
1048 外接配置庫參數設定
功能簡介
帆軟應用對系統有一定的配置要求,如果配置不符合要求可能出現使用異常、當機等風險,因此需要定期對環境及應用的配置情況進行檢查,以確定應用的健康運作。
同時管理者需要關注應用的運作狀況,即時透過維運手段規避風險或在問題發生後定位並進行排除,實現應用的持續高可用。
系統檢查的檢查項包括:
巡檢項
編號
叢集節點是
否分別檢查
是否支援
快速修復
僅匯出資訊
檢查主頻大於等於 2.4 gh
建議主頻大於等於 2.4 gh
檢查覈心數大於 4 核
cpu 核心數推薦大於 4
維運平台部署的工程:
檢查bi-web/master/worker/fr/fdl的容器記憶體上限是否大於等於15.5GB
建議容器記憶體上限大於等於16G
非維運平台部署的工程:
檢查工程所在伺服器物理總記憶體是否大於等於15.5GB
建議伺服器物理記憶體上限大於等於16G
檢查是否關閉虛擬記憶體
匯出交換分割槽大小
建議關閉虛擬記憶體
CPU效能
檢查堆內記憶體的配置是否在推薦範圍內
檢查近一週FGC耗時中位數是否小於10S
如不滿足以上兩點,則CPU效能較差,建議增加CPU核心數、使用效能更好的CPU或適當降低最大堆內記憶體xmx,避免FGC時間過長影響使用
僅非維運平台部署的專案檢查該項
檢查/proc/sys/vm/panic_on_oom中的Linux核心參數vm.panic_on_oom是否等於0
建議調整/proc/sys/vm/panic_on_oom配置,透過sysctl -w vm.panic_on_oom=0 修改成不觸發panic
僅匯出信息
檢查/etc/abrt/abrt-action-save-package-data.conf檔案中ProcessUnpackaged的值
1)登入宿主機
使用合適的身分驗證方式(例如SSH、Console等),登入到運作容器的宿主機。
2)查看當前系統中是否啟動了swap分割槽
使用以下命令查看系統中已經啟動的swap分割槽資訊:
sudo swapon -s
如果匯出結果為空,則表示當前沒有啟動swap分割槽。3)關閉swap分割槽
使用以下命令關閉swap分割槽:
sudo swapoff -a
該命令將關閉所有已經啟動的swap分割槽。
4)永久禁用swap分割槽
為了避免系統在下一次啟動時自動啟動swap分割槽,需要在系統配置檔案中進行相應的修改。
以Ubuntu為例,可以按照以下步驟操作:
修改/etc/fstab檔案,找到含有swap的行並註釋掉或刪除該行。
執行以下命令更新grub引導程式:
sudo update-grub
5)驗證swap分割槽是否已經關閉
重啟系統後,可以再次執行sudo swapon -s命令查看系統中是否存在已經啟動的swap分割槽。
如果匯出結果為空,則表示swap分割槽已經成功關閉。
1)使用者查看「系統屬性>進階>效能>設定」
2)查看「進階>虛擬記憶體>更改」
3)取消勾選「自動管理所有驅動器的分頁檔案大小」
4)選擇「自訂大小」並設定
建議初始大小為物理記憶體1.5倍,最大值為物理記憶體2倍,請謹慎修改
系統運作狀態的檢查項包括:
包括:本次啟動的耗時
包括:目錄路徑
注:僅檢查本地,不檢查檔案伺服器。
檢查工程WEB-INF下一層的每個資料夾大小
健康:不存在大於5G的資料夾
不健康:存在大於5G的資料夾
修改建議:
建議檢查確認對應資料夾的內容並進行清理
提示出超過5G大小的資料夾路徑
包括:插件名、插件版本、插件是否啟動
包括:工程是否註冊
包括:是/否
包括:工程各個模組的版本和JAR包日期
包括:目錄路徑、目錄剩餘可用空間
對於Windows系統、Tomcat容器下的工程:
檢查是否使用javaw後台運作tomcat
健康:使用javaw後台運作tomcat
不健康:未使用javaw後台運作tomcat
修改建議:建議使用javaw後台運作tomcat
0204 清理資料夾
1)WEB-INF資料夾存放着什麼
FineReport:FineReport安裝目錄結構
FineBI:FineBI安裝目錄結構
2)哪些檔案可清理
%BI_HOME%webappswebrootWEB-INFschedule
2)檔案用途:
儲存排程管理任務產生的中間檔案
3)可清理範圍:保留最近一年的檔案,其餘均可清理4)清理級別:
建議清理
檔案層級直接展示到具體的日期(日級別),使用者手動選擇需要清理的範圍即可
推薦清理12個月之外的檔案
12個月之內的檔案不顯示
%BI_HOME%webappswebrootWEB-INF reasures2)檔案用途:雲端健檢分析日誌打包檔案3)清理級別:
3)清理方式
管理者登入維運平台,選擇指定維運專案,點選「業務工具>資源清理」。
選擇需要掃描的檔案類型,點選「開始掃描」,可以對掃描出的冗餘檔案進行勾選清理。
原因分析:
Windows系統中,tomcat容器下部署的工程,如果不使用後台模式啟動,而是使用視窗模式啟動,可能會因為誤點視窗,導致視窗進入編輯插入狀態,阻擋日誌匯出,進而導致工程卡死。
因此建議Windows系統中,tomcat容器下部署的工程,tomcat使用後台模式啟動。
操作步驟:
先修改預設啟動模式為javaw。為了防止重複啟動,重新整理增腳本檢查啟動命令,按任意鍵即可結束腳本。
1)修改setclasspath.bat
開啟%Tomcat_HOME%insetclasspath.bat,找到並修改set _RUNJAVA的值:
set _RUNJAVA="%JRE_HOME%injavaw.exe"
2)修改catalina.bat
開啟%Tomcat_HOME%incatalina.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
刪除系統級別限制
檢查/etc/profile檔案中,是否存在 ulimit -n xxx 相關語句
若存在,刪除相關語句,並使用 source /etc/profile 語句重新載入 shell 環境
修改使用者級別限制
開啟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並應用新的環境變數設定。
1)策略簡介:
Redis淘汰策略設定為noeviction時,當達到最大記憶體限制時,不會淘汰任何現有資料,並拒絕新的寫入操作(包括寫命令、資料更新等)
使用該策略可以確定所有資料都不會被自動刪除,進而保持資料的完整性,避免記憶體不足導致資料丟失。
2)修改方式:
在 Redis 安裝目錄下,找到 redis.conf 配置檔案,找到配置項 maxmemory-policy,將其設定為 noeviction
修改後,需要重啟 Redis 服務以使配置生效。
在 Linux 系統中,nproc 表示當前使用者可以啟動的最大進程數。這個限制通常在系統級別設定,但也可以針對單個使用者進行配置。
如果 nproc 限制過低,當達到 nproc 的限制,可能會導致應用程式無法啟動新的進程,進而影響使用者體驗或系統功能。
建議最大進程數 nproc 參數配置不低於 65535
以 root 使用者身分編輯 /etc/security 或 /etc 資料夾下的 limits.conf檔案
新增或修改以下行(username 是要設定限制的帳號,請自行修改。soft 是軟限制,是預設值。hard 是硬限制,是最大值):
# 對特定使用者設定 nproc 限制
username soft nproc 65535
username hard nproc 65535
# 對所有使用者設定 nproc 限制
* soft nproc 65535
* hard nproc 65535
Java虛擬機的檢查項包括:
FR:建議配置JVM NIO佔用堆外記憶體2GB
BI:建議配置JVM NIO佔用堆外記憶體4GB
建議JVM fineIO讀記憶體使用堆外記憶體設定為2G
建議JVM fineIO寫記憶體使用堆外記憶體設定為1G
建議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=CN
不健康:-Duser.country≠CN
修改建議:建議配置-Duser.country=CN
健康:-Duser.language=zh
不健康:-Duser.language≠zh
健康:-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
健康:dump匯出目錄剩餘磁碟 > 堆記憶體*2
不健康:dump匯出目錄剩餘磁碟≤堆記憶體*2
修改建議:建議清理「dump匯出目錄」的磁碟空間至「2*堆記憶體」以保證正常匯出dump
1)建議值
bi-web:建議配置JVM NIO佔用堆外記憶體2GB
bi-engine-worker:建議配置JVM NIO佔用堆外記憶體xmx*0.4GB
2)修改方式
NIO由-XX:MaxDirectMemorySize這個參數控制。請根據自身工程部署情況選擇修改方法。
維運平台部署的專案,預設為工程的bi6/fr/fdl組件配置了該參數,一般無需修復
如存在問題,請使用「維運平台>專案>健康巡檢」介面的「快速修復」按鈕進行修復
非維運平台部署的專案
作業系統為Linux
中間軟體類型為Tomcat
優先推薦使用「維運平台>專案>健康巡檢」介面的「快速修復」按鈕進行修復
若無建立、讀寫檔案的權限,可手動配置:
1)進入%Tomcat_HOME%/bin目錄,尋找名為setenv.sh的檔案。
如果檔案不存在,可以建立一個新的setenv.sh檔案。
2)在檔案中新增以下行:
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=4g"
3)配置完成後重啟工程生效。
作業系統為Windows
1)進入%Tomcat_HOME%/bin目錄,尋找名為setenv.bat的檔案。
如果檔案不存在,可以建立一個新的setenv.bat檔案。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=4g
建議JVM fineIO讀記憶體使用堆外記憶體設定為2G。
fineIO 讀記憶體由-Dfineio.read_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。
讀記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2
建議JVM fineIO寫記憶體使用堆外記憶體設定為1G。
fineIO 寫記憶體由-Dfineio.write_mem_limit這個參數來設定。請根據自身工程部署情況選擇修改方法。
寫記憶體的預設單位為 GB,支援小數,但不支援使用 g、m 等。建議讀記憶體為寫記憶體的2-3倍,快取大小建議與寫記憶體大小一致。
JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1
建議 JVM 使用垃圾回收器類型為 ParallelScavenge
本節介紹設定垃圾收集器為Parallel Scavenge(並行收集器)的方法。
1)進入專案掛載目錄/fanruanxxx/fr/mount目錄,尋找名為setenv.sh的檔案
2)在檔案中新增/修改以下行:
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParallelGC
-XX:+DisableExplicitGC參數的作用是禁用 System.gc()。System.gc() 是一種保護機制,例如堆外記憶體滿時清理它的堆內引用物件。
建議不對 DisableExplicitGC 參數進行配置,此項配置會導致 System.gc()被禁用,影響系統穩定性。
本節介紹刪除 DisableExplicitGC 參數的步驟。
維運平台部署的專案,預設不配置該參數,一般無需修復
若無讀寫檔案的權限,可手動配置:
1)進入%Tomcat_HOME%in目錄,尋找名為catalina.sh和setenv.sh的檔案。
2)在檔案中尋找是否存在XX:+DisableExplicitGC,若存在,刪除相關配置
3)儲存修改後重啟工程生效。
1)進入%Tomcat_HOME%in目錄,尋找名為catalina.bat和setenv.bat的檔案。
建議使用「JDK8」中 1.8.0_181 及以上版本
2)檢查方式
本文僅介紹JDK版本檢查方式,如不符合版本要求,請自行查閱相關產品文檔升級/重裝JDK
維運平台部署的專案
帆軟伺服器部署包部署的專案
使用者自行準備的JDK部署的專案
headless 模式是系統的一種工作模式,如果系統屬性 java.awt.headless被設定true,那麼headless工具包就會被使用。
建議配置 -Djava.awt.headless=true 以啟動 headless 模式
本節展示啟動 headless 模式的步驟。
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
建議配置HeapDumpOnOutOfMemoryError 及 HeapDumpPath以保證正常匯出dump
-XX:+HeapDumpOnOutOfMemoryError參數表示當JVM發生OOM時,自動生成DUMP檔案。
-XX:HeapDumpPath=${目錄}參數表示生成dump檔案的路徑,也可以指定檔案名稱,例如:-XX:HeapDumpPath=${目錄}/java_heapdump.hprof。
如果不指定檔案名稱,預設為:java_<pid>_<date>_<time>_heapDump.hprof。
本節展示設定dump匯出的步驟。
2)在檔案中新增以下行(請將/path/to/dump/directory取代為你自己儲存 Heap Dump 檔案的目錄):
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump/directory"
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump/directory
與下一節「0810 PerMethodRecompilationCutoff配置」一起修改,請參考下一節。
沒有配置 RecompilationCutoff 參數/配置的 RecompilationCutoff 參數太小,可能會導致 spider 引擎資料更新緩慢。
建議recompilationCutoff相關參數配置值為-1
本節展示設定 recompilationCutoff 參數的步驟。
JAVA_OPTS="$JAVA_OPTS -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1"
set JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1
注:僅FineBI系統檢查該項
優先推薦使用維運平台部署FineBI工程。詳情請參見:部署新專案
如不使用維運平台部署,至少請使用web容器方式部署FineBI工程。詳情請參見:Linux下Tomcat伺服器部署包
ReservedCodeCacheSize參數是調整記憶體大小的一個設定參數,值的大小設定直接影響到Code Cache的大小。
如果Code Cache的空間不足,可能會導致JVM無法正常運作,導致效能持續降低。
建議配置-XX:ReservedCodeCacheSize=250m
本節介紹修改ReservedCodeCacheSize參數的方法。
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=250m"
set JAVA_OPTS=%JAVA_OPTS% -XX:ReservedCodeCacheSize=250m
與下一節「0815 語言配置-Duser.language」一起修改,請參考下一節。
為了防止中文出現亂碼現象,要配置好語言編碼。
建議配置-Duser.country=CN、-Duser.language=zh
JAVA_OPTS="$JAVA_OPTS -Duser.country=CN -Duser.language=zh"
set JAVA_OPTS=%JAVA_OPTS% -Duser.country=CN -Duser.language=zh
配置該參數,可預防 jvm crash
建議配置-Dsun.zip.disableMemoryMapping=true
JAVA_OPTS="$JAVA_OPTS -Dsun.zip.disableMemoryMapping=true"
set JAVA_OPTS=%JAVA_OPTS% -Dsun.zip.disableMemoryMapping=true
堆內老年代與新生代大小比例建議為 2(-XX:NewRatio=2,JVM的預設值);NewRatio 大小正常生效需要使用者不限制新生代大小。
在設定-Xmx、-Xms參數的位置,新增 NewRatio 的值即可,本節展示設定 NewRatio 的步驟。
2)在設定-Xmx、-Xms參數的位置,新增 NewRatio 的值,例如:
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -XX:NewRatio=2
建議單執行緒使用棧空間不超過1024KB,即 -Xss 的值不超過 1024 。
在設定-Xmx、-Xms參數的位置,新增 -Xss 的值即可,本節展示設定 -Xss 的步驟。
請使用「維運平台>專案>健康巡檢」介面的「快速修復」按鈕進行修復
2)在設定-Xmx、-Xms參數的位置,新增 Xss 的值,例如:
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M -1024K
debug模式由兩個參數控制:-agentlib:jdwp 和 -Xrunjdwp,刪除這兩個參數即可取消debug模式
建議取消debug模式
本文介紹如何取消debug模式。
維運平台部署的專案,預設不配置該參數,一般無需修復。
2)在檔案中尋找是否存在-agentlib:jdwp 和 -Xrunjdwp參數,若存在,刪除相關配置
與下一節「0821 xms配置」一起修改,請參考下一節。
-Xmx 參數:最大堆內記憶體
-Xms 參數:初始化記憶體大小
注1:Xmx/Xms 與數字之間不要有空格
注2:建議配置Xms=Xmx,以防止記憶體擴容失敗情況
若無建立、讀寫檔案的權限,可手動配置:修改記憶體
中間軟體類型為其他
WebLogic伺服器配置修改
WebSphere伺服器配置修改
Resin伺服器記憶體修改
JBoss伺服器記憶體修改
元資料空間(Metaspace)是 Java 虛擬機(JVM)用於儲存類元資料的區域。在 JVM 中,元資料包括類的結構資訊、方法資訊、欄位資訊等。
元資料空間配置 MaxMetaspaceSize 用於設定元資料空間的最大大小。當元資料空間超過這個限制時,JVM 會發生垃圾回收以釋放不再使用的元資料。
建議配置 MaxMetaspaceSize 參數為 2G
本節展示設定 MaxMetaspaceSize 的步驟。
JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=2G"
set 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
檢查系統的spark_memory_fracrtion參數值
修改建議:建議spark_memory_fraction 參數設定不超過0.3*堆內記憶體的1/8且最大不超過0.6
包括finedb外接資料庫的資料庫編碼/字元集
外接資料庫配置步驟請參見:配置外接資料庫
檢查「管理系統>智慧維運>叢集配置>參數配置」中的內部轉發參數
叢集參數配置請參見:叢集參數配置
檢查「管理系統>系統管理>標準>抽取參數」 中的「更新高效能時間區間」參數
BI參數配置請參見:BI/Spider參數
檢查系統是否配置二級快取
二級快取開啟及配置請參見:指定ehcache快取路徑
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的sql執行時長限制
健康:開啟了sql執行時長限制
不健康:未開啟sql執行時長限制
修改建議:建議開啟系統管理-智慧維運-負載管理-範本限制-通用限制-sql執行時長限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單範本儲存格限制
健康:開啟了單範本儲存格限制
不健康:未開啟單範本儲存格限制
修改建議:建議開啟系統管理-智慧維運-負載管理-範本限制-通用限制-單範本儲存格限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的匯入Excel儲存格限制
健康:開啟了匯入Excel儲存格限制
不健康:未開啟匯入Excel儲存格限制
修改建議:建議開啟系統管理-智慧維運-負載管理-範本限制-通用限制-匯入excel儲存格限制功能。
檢查「管理系統>智慧維運>負載管理>範本限制>通用限制」中的單資料集行數限制
健康:開啟了單資料集行數限制
不健康:未開啟單資料集行數限制
修改建議:建議開啟系統管理-智慧維運-負載管理-範本限制-通用限制- 單資料集行數限制功能。
檢查「管理系統>智慧維運>負載管理>負載監視」中是否開啟「智慧預警」
詳情請參見:負載管理
檢查是否存在髒資料
健康:0條髒資料
不健康:x條髒資料
修改方法:有X條髒資料,建議在「BI工具」-「檢查」-「髒資料」中進行排查清理
檢查系統是否開啟雲端健檢分析
雲端健檢分析功能請參見:雲端健檢分析
檢查「管理系統>系統管理>登入」中是否開啟「密碼強度限制」
健康:開啟了密碼強度限制
不健康:未開啟密碼強度限制
修改建議:未開啟密碼強度限制,密碼強度較低可能容易被攻擊,導緻安全問題,建議在[管理系統]-[系統管理]-[登入]中開啟密碼強度限制
檢查「管理系統>智慧維運>負載管理>範本限制」中是否開啟「提交記錄數限制」
健康:開啟了提交記錄數限制
不健康:未開啟提交記錄數限制
修改建議:建議開啟管理系統-智慧維運-記憶體管理-範本限制-通用限制- 提交記錄數限制
健康:開啟了單個圖表匯出資料量限制
不健康:未開啟單個圖表匯出資料量限制
健康:未單獨放寬限制
不健康:為部分範本放寬限制
修改建議:不建議設定放寬範本,可能因放寬範本導緻系統資源佔用過多最終當機
檢查「管理系統>抽數快取」中是否開啟緩存
健康:開啟快取
不健康:未開啟快取
修改建議:建議開啟抽數快取中的開啟快取設定
僅當上一步抽數快取開啟後,檢查該項
檢查「管理系統>抽數快取」中的快取記憶體空間限制值
檢查「管理系統>系統管理>標準」中是否開啟「平行計算報表塊」
健康:開啟平行計算報表塊
不健康:未開啟平行計算報表塊
修改建議:建議開啟管理系統-系統管理-標準-決策報表計算全局設定-平行計算報表塊功能
健康:開啟當機自動處理
不健康:未開啟當機自動處理
修改建議:建議開啟管理系統-智慧維運-當機處理-當機自動處理工具-當機自動處理功能
健康:開啟當機匯出記憶體堆疊
不健康:未開啟當機匯出記憶體堆疊
修改建議:建議開啟管理系統-智慧維運-當機處理-當機自動處理工具-當機匯出記憶體堆疊功能
檢查系統中以下參數值
DistributedOptimizationConfig.spiderConfig.spark_memory_fraction
SystemOptimizationConfig.spiderConfig.threadPoolStrategy
SystemOptimizationConfig.tableLoadThreadPoolNum
DistributedOptimizationConfig.spiderConfig.spider_high_performance_resource_time
SystemOptimizationConfig.baseTableLoadDynamicThreadCoreSizeStr
SystemOptimizationConfig.fastTableLoadDynamicThreadCoreSizeStr
systemOptimizationConfig.optimizeSqlMaxComplexity
健康:
工程版本在FR11.0.21/BI6.0.15之前,未開啟 Gzip 壓縮
工程版本在FR11.0.21/BI6.0.15及之後,無論是否開啟 Gzip 壓縮,均為健康情況
不健康:
工程版本在FR11.0.21/BI6.0.15之前,開啟了 Gzip 壓縮
建議關閉gzip或升級至FR11.0.21/BI6.0.15及之後的版本,否則可能會出現當機風險
DistributedOptimizationConfig.spiderConfig.spider_query_timeout_open
如為三節點及以上叢集環境,且工程當月日均存取量大於1W
建議將logdb切換至elasticsearch,避免出現效能及當機問題
ExecuteRecordConfiguration.asyncRecord
DistributedOptimizationConfig.spiderConfig.spark_sql_constraintPropagation_enabled
DistributedOptimizationConfig.spiderConfig.spider_restrictions_column_long_text
DistributedOptimizationConfig.spiderConfig.spider_query_condition_count_restriction
SystemOptimizationConfig.shutdownCacheEngine
健康:外接配置庫預設連結池大小,大於等於100
不健康:外接配置庫預設連結池大小,小於100
修改建議:建議外接配置庫預設連結池大小設定為100(具體配置方法,請查閱對應資料庫産品的說明文檔)
注:僅FineBI6.1系統檢查該項
檢查所有bi-web、bi-engine-worker、bi-engine-master組件的週開始於設定是否一緻
健康:週開始於設定一緻
不健康:週開始於設定不一緻
檢查所有bi-web、bi-engine-worker、bi-engine-master組件的中文排序設定是否一緻
管理者登入帆軟應用,點選「管理系統>系統管理>標準>外接資料庫」,將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)優先建議升級至 FR11.0.21/BI6.0.15 及之後的版本,即可自行按需決定是否開啟「Gzip壓縮」
2)如無法升級,請登入帆軟應用,點選「管理系統>系統管理>標準」,關閉「Gzip壓縮」,點選「儲存」
帆軟應用的操作日誌,預設儲存於swift(logdb)
如為三節點及以上叢集環境,且工程當月日均存取量大於1W,建議將操作日誌切換至elasticsearch儲存,避免出現效能及當機問題。
付費使用者請自行準備ElasticSearch,並聯系帆軟技術支援協助切換。技術支援聯系方式:「服務>線上支援」
檢查FineBI6.1專案中的所有bi-web、bi-engine-worker、bi-engine-master組件的週開始於設定是否完全一緻。
1)修改bi-web的週開始於設定
管理者登入FineBI系統,點選「管理系統>系統管理>標準」。
修改週開始於設定:星期日/星期一
2)修改bi-engine-worker、bi-engine-master的週開始於設定
管理者登入維運平台,點選對應專案。點選「維護>組件管理」。
找到對應組件,點選「更改配置」按鈕,修改週開始於設定:sunday/monday
檢查FineBI6.1專案中的所有bi-web、bi-engine-worker、bi-engine-master組件的中文排序配置是否完全一緻。
1)修改bi-web的中文排序設定
管理者登入FineBI系統,點選「管理系統>系統管理>BI參數」。
在基礎功能配置中,支援開關中文排序
關閉:代表bytes,表示關閉中文排序
開啟:代表pinyin,表示開啟中文排序,按照拼音排序
2)修改bi-engine-worker、bi-engine-master的中文排序設定
找到對應組件,點選「更改配置」按鈕,修改排序設定:
bytes:表示關閉中文排序
pinyin:表示開啟中文排序,按照拼音排序
維運平台對專案進行當機自動重啟、自動生成dump檔案等操作,依賴專案內建當機處理工具。
因此必須確定當機處理工具正常運作,否則相關功能可能都無法使用。
如檢查當機處理工具運作異常,請參考文檔 確定當機處理工具可用
檢查外接配置庫的db.properties檔案中的指定參數值,如參數值不滿足要求,則判定為不健康。
1)健康標準
最小閒置連結數
連結池最小連結數量
最大等待時間
獲取連結時最大等待時間,單位毫秒
開啟閒置回收器檢驗
連結池中的最小閒置連結數以內的連結,閒置時間超過minEvictableIdleTimeMillis,則會執行keepAlive操作
獲取連結前檢驗
申請連結時檢查連結是否有效,做了這個配置會降低效能
歸還連結前檢驗
歸還連結時檢查連結是否有效,做了這個配置會降低效能
校驗語句的逾時時間,單位秒
防止連結逾時而一直等待
閒置連結可用性定期檢查
檢查到需要留下的連結保證其可用,解決資料庫或者防火牆主動斷開長時間不活躍連結的場景
控制優先讀取jvm參數還是優先讀取db.properties
2)修改方法
使用者需要透過手動修改db.properties檔案中的參數值,以修復該檢查項
該操作可能存在一定危險性,付費使用者請交握帆軟技術支援協助處理
1、備份工程
維運平台部署的專案:備份專案
非維運平台部署的專案:工程備份還原方案 3.1節
2、關閉工程
維運平台部署的專案:組件管理
非維運平台部署的專案:關閉或重啟FineBI工程
3、修改db.properties
開啟工程/webroot/WEB-INF/config目錄下的db.properties,根據上文的參數,對參數值進行修正,修改後儲存。
如為叢集工程,請對每個工程節點下的db.properties進行同步
4、啟動工程
3)修改方法-JVM參數
如檢查出-DtraceSessionLeak參數不正確,需要修改Tomcat的相關配置檔案
1)進入%Tomcat_HOME%\bin目錄,尋找名為catalina.sh和setenv.sh的檔案。
2)在檔案中尋找是否存在-DtraceSessionLeak參數,若存在,修改參數值為false
1)進入%Tomcat_HOME%\bin目錄,尋找名為catalina.bat和setenv.bat的檔案。