反饋已提交
網絡繁忙
新增配置項「報表限流臨界值」
http執行緒阻擋功能邏輯優化
在使用者存取工程資源時,可能會出現執行緒阻擋等問題,而這些問題往往會導致工程當機。
帆軟提供「資源調度熔斷」功能,對執行緒阻擋問題提供兜底故障容許度策略,降低當機風險。
應用場景:對於 http 執行緒池中的 FineReport 報表類執行緒任務,在不同的執行緒負載狀態下根據逾時和執行緒阻擋狀況,進行相關的執行緒中斷,終止任務,避免 http 執行緒被佔滿而當機。
版本要求:11.0.34 及之後版本 FineReport 支援
如何啟動功能
1)管理者登入帆軟應用,點選「管理系統>系統管理>標準」
2)在「防當機專項配置」中,開啟「執行緒熔斷」開關,配置「報表限流臨界值」,儲存即可。
「執行緒熔斷」為總開關,未開啟時「報表限流臨界值」配置無效
「報表限流臨界值」支援使用者自訂設定,預設值為 0.5(即 50%),有效設定範圍為 0 到 1之間的小數
執行時機:每處理 40 個請求時觸發檢查判斷條件:
在高負載狀態下(執行緒池使用率>80%):檢查是否存在運作時間超過 1 小時的執行緒
在低負載狀態下(執行緒池使用率≤80%):檢查是否存在運作時間超過 8 小時的執行緒
執行動作:當滿足條件時,系統會中斷對應的逾時執行緒
執行時機:每次提交報表業務時觸發檢查判斷條件:執行緒池使用率>80%(高負載狀態)
執行動作:
計算新的執行緒池容量:取"執行緒池當前容量×2"和"800"中的較小值
將執行緒池容量擴容至計算得到的新值
判斷條件:同時滿足以下條件:
執行緒池使用率>80%(高負載狀態)
執行緒池已達到擴容上限(即已經擴容到 800)
當前報表業務請求數佔總請求數的比例 > 配置的「報表限流臨界值」
執行動作:系統將對報表業務執行緒進行限流處理
應用場景:針對取數鏈路中的高風險場景,如資料連結異常、連結阻擋、系統執行緒資源緊張,自動監視識別風險,並在取數阻擋後進行報錯提醒、資源釋放,保護系統
版本要求:11.5.4 及之後版本 FineReport 支援
2)在「防當機專項配置」中,開啟「執行緒熔斷」開關,儲存即可。
執行時機:建立連結時觸發檢查
取數請求數量,超過http最大執行緒池大小的50%
對還未到達業務庫獲取連結、取數等流程的http請求進行報錯傳回
提示「當前系統執行緒壓力過大,本次請求無法正常執行,請聯絡管理者檢查資料連結後重試」
SQL查詢取數請求數量,超過http最大執行緒池大小的50%
篩選並中斷運作時間超過 5 分鐘的長時任務
傳送警報資訊通知管理者「取數導致執行緒負載壓力過高,為防止當機已觸發以下資料連結的執行緒熔斷:xxx」
判斷條件:
超出該執行時長的資料連結請求,稱為「長連結」:「管理系統-智慧維運>負載管理>範本限制」中設定的sql最大執行時長(預設600s)+60s
資料連結中「長連結」數量,超過該資料連結最大活動連結數的80%
傳送警報資訊通知管理者「【警報通知】尊敬的使用者,檢查到{xxx} 資料連結運作異常:當前連結資源已接近上限,可能導致該資料連結相關查詢業務延遲、失敗。請儘快檢查資料源的連結狀態,或聯絡技術支援協助排查」
同一資料連結警報間隔為30分鐘,若30分鐘後仍然存在長連結過多的情況,會再次觸發警報
應用場景:統計配置庫、狀態服務、檔案服務等專案組件的執行緒數量,在系統執行緒高負載後進行新請求的快速失敗報錯,提示使用者排查組件問題
11.5.3 及之後版本 FineReport 支援
http執行緒池使用率>80%(高負載狀態)
配置庫獲取連結執行緒數量超過http最大執行緒池大小的50%
中斷耗時超過1分鐘、且狀態為TIME_WAITING的執行緒
提示:當前系統執行緒壓力過大,本次請求因為獲取配置庫資料連結耗時過長,已被執行緒熔斷中斷
11.5.4 及之後版本 FineReport 支援
配置庫執行緒數量超過http最大執行緒池大小的50%
對還未執行的配置庫http請求進行報錯傳回
提示「當前系統執行緒壓力過大,本次請求無法正常執行,請聯絡管理者檢查配置資料庫後重試」
狀態服務執行緒數量超過http最大執行緒池大小的50%
對還未執行的狀態服務http請求進行報錯傳回
提示「當前系統執行緒壓力過大,本次請求無法正常執行,請聯絡管理者檢查狀態伺服器後重試」
檔案服務執行緒數量超過http最大執行緒池大小的50%
檔案服務類型為FTP、SFTP、S3、minio
對還未執行的檔案服務http請求進行報錯傳回
提示「當前系統執行緒壓力過大,本次請求無法正常執行,請聯絡管理者檢查檔案伺服器後重試」
如需啟動「資源調度熔斷」功能,11.0.33 及以下版本的FineReport開啟步驟不同,請根據自身情況選擇對應開啟步驟。
需要安裝V1.4.3及以上版本的資源調度熔斷插件來啟動「資源調度熔斷」功能
點選下載插件:資源調度熔斷插件
設計器插件安裝方法參照:設計器插件管理
伺服器安裝插件方法參照:伺服器插件管理
注:如使用V1.4.2及以下版本的資源調度熔斷插件,可能在使用程式中出現報錯,請務必升級。
2)在「防當機專項配置」中,開啟「執行緒熔斷」開關即可
注:FineReport從11.0.29及以下版本升級到11.0.30及以上版本後,資源調度熔斷插件會自動禁用,「執行緒熔斷」開關預設關閉,請手動開啟「執行緒熔斷」開關。
功能開啟後,以下情況自動生效。
1)使用非同步執行緒池取代原本的http執行緒池。
2)CPU負載超過80%或Report執行緒池執行緒使用超過85%時,收信確認為執行緒高負載
執行緒高負載時,每15秒會觸發一次執行緒阻擋死鎖和長執行執行緒檢查
如果有3個以上執行緒阻擋在同一個session則會觸發session關閉
如果有執行緒死鎖則直接中斷死鎖的執行緒,如果存在長執行執行緒則觸發關閉
執行緒被中止後,提示「當前系統記憶體壓力過大觸發系統防當機保護,已中止範本計算,請稍後重試」
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙