效能堆疊

  • 最後修改時間:2025-01-24
  • 1. 概述

    1.1 版本

    維運平台版本功能變更
    V1.5.5
    -
    V1.5.7

    1)維運平台日誌管理功能拆分優

    2)對於叢集多節點工程,支援單次下載多節點日誌檔案
    3)各類日誌下載時,支援選擇服務類型,按需下載日誌

    V1.8.0分析日誌中,分析記錄列表新增展示「觸發類型」
    V1.12.01)支援手動上傳本地效能堆疊,至維運平台進行分析
    2)支援展示歷史效能堆疊生成記錄
    3)效能堆疊使用順序優化,變更為:分析>下載>生成
    V1.14.0

    維運平台監測當機,自動觸發生成日誌條件優化

    1)應用無迴應觸發時間由3分鐘優化為2分鐘

    2)新增FullGC觸發條件:5min內FullGC次數總和大於3次,且時間總和超過 50s

    V1.15.0下載日誌時,支援按需選擇日誌類型,無需全量下載,降低下載成本
    V2.0.0效能分析結果優化,新增「記憶體情況劃分」
    V2.1.0

    1)在專案不可用情況下,仍支援生成、分析、下載效能堆堆疊

    2)優化分析報表,拆分記憶體和CPU資訊,優化GC狀態展示

    1.2 應用場景

    當工程出現當機或異常時:

    1)在工程當機時,管理者需要快速生成堆疊日誌,以確定事後有辦法覆盤定位問題。

    2)管理者需要對堆疊日誌進行分析,追蹤問題產生的根本原因,但日誌分析對管理者的技術水平要求較高。

    3)管理者需要將堆疊日誌拿到本地自行分析,或提供給帆軟技術支援人員,幫助確認工程存在的問題,但很多公司日誌獲取費時費力。

    FineOps維運平台提供「效能堆疊」功能,支援對堆疊日誌進行快速生成、智慧分析、便捷下載。

    2024-07-15_15-15-53.png

    1.3 日誌簡介

    效能堆疊功能,支援對以下堆疊日誌進行生成、分析和下載:

    日誌
    說明
    fanruan.gc.log帆軟當機日誌
    thread.txt執行緒資訊統計報表,該報表包含了所有執行緒的狀態、堆疊磁軌資訊等,可以幫助瞭解應用程式的執行緒使用情況,即時發現和解決執行緒問題。
    histo.txt記憶體使用情況統計報表,該報表包含了物件的數量、大小、佔用空間等資訊,可以幫助瞭解應用程式的記憶體使用情況,即時發現和解決記憶體泄漏等問題。
    hs_err.txtJava在運作程式中遇到錯誤時自動生成的錯誤報表檔案,包含了詳細的錯誤資訊、堆疊磁軌資訊、執行緒資訊等,可以幫助定位和解決程式碼問題。
    top.txt

    Linux 系統下的 top 命令的匯出結果,用於顯示當前系統中運作進程的相關資訊,包括top-H.txt、top-sortedByCPU.txt、top-sortedByMEM.txt

    1)top-H.txt:該檔案是 top 命令匯出結果中的 "H" 模式,用於顯示執行緒資訊,包括執行緒 ID、CPU 佔用率、記憶體佔用率等

    2)top-sortedByCPU.txt:該檔案是 top 命令匯出結果按照 CPU 佔用率從高到低排序的資訊,包括進程 ID、CPU 佔用率、記憶體佔用率等

    3)top-sortedByMEM.txt:該檔案是 top 命令匯出結果按照記憶體佔用率從高到低排序的資訊,包括進程 ID、CPU 佔用率、記憶體佔用率等

    2. 分析日誌

    應用場景:

    當工程當機後,管理者需要對當機日誌進行分析,修復工程存在的問題,防止再次發生。

    FineOps維運平台支援對jstack、histo、gc和top-H內容進行分析,幫助使用者分析錯誤堆疊並給出相關改進意見。

    2.1 自動分析維運專案

    當滿足 4.1 節自動生成日誌後,FineOps會對每個節點自動生成的堆疊日誌進行分析。

    1)管理者登入維運平台,點選「專案管理」,選擇指定維運專案。

    2)進入「日誌>效能堆疊」頁面,在「分析」模組下可以查看到自動分析的結果:

    2.2 手動分析維運專案

    操作步驟:

    1)管理者登入維運平台,點選「專案管理」,選擇指定維運專案。進入「日誌>效能堆疊」頁面,

    2)在「分析」模組下,點選「分析」按鈕。觸發該維運專案下每個節點生成堆疊日誌。

    3)FineOps會對每個節點生成的堆疊日誌進行分析,分析結果生成在分析記錄中。

    注意事項:

    每1分鐘僅支援進行1次分析,以防頻繁觸發,導致系統效能差。若分析請求過於頻繁,則提示「分析請求太頻繁啦,請稍等一分鐘後再重新嘗試」。

    2.3 手動上傳日誌分析

    使用者可手動上傳本地堆疊日誌到維運平台進行分析。

    操作步驟:

    1)準備本地堆疊日誌包

    僅支援.zip/.tar/.gz格式壓縮包,請務必準備標準的jstack -l堆疊。

    維運平台將根據壓縮包中jstack、histo、gc和top-H 生成分析報表,僅支援同時分析一個節點。

    2)上傳本地堆疊日誌包

    管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。

    在「分析」模組下,點選「上傳效能堆疊分析」按鈕,選擇本地日誌包,點選「開啟」。

    3)生成分析報表

    FineOps將根據壓縮包中jstack、histo、gc和top-H 生成分析報表,僅支援同時分析一個節點。

    分析結果在新標籤頁開啟,不記錄在分析記錄中。

    QQ图片20240715170617.png

    2.4 查看分析記錄

    管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。

    在「分析>分析記錄」模組下,以明細表形式顯示該維運專案下所有手動/自動觸發的堆疊分析結果(不包括手動上傳的日誌分析記錄)。

    1)分析記錄以明細表形式展示,展示內容包括:專案名、節點名、觸發類型、操作時間、操作者、操作IP、分析結果。

    若手動觸發,操作者和操作IP為空。

    2)若維運專案為叢集環境,每個節點都會生成一份分析結果。

    3)日誌分析歷史記錄最多只保留最近50條記錄。支援選中單個分析記錄刪除,支援批量刪除多個分析記錄,支援清空全部歷史記錄。

    4)點選分析記錄中的「查看」按鈕,即可在新標籤頁開啟具體的分析結果。

    QQ图片20240715165043.png

    點選對應分析結果後的「查看」按鈕,即可查看本次分析的具體結果。

    效能堆疊分析結果範例如下圖所示,分為兩個部分:記憶體狀態詳情、執行緒CPU狀態詳情。

    • 記憶體狀態詳情:分為GC狀態和記憶體狀態

    2024-07-15_16-52-48.png

    • 執行緒CPU狀態詳情:

    2024-07-15_16-54-18.png


    3. 下載日誌

    應用場景:

    當工程當機後,管理者需要將當機日誌拿到本地自行分析,或提供給帆軟技術支援人員,幫助確認工程存在的問題,防止再次發生。

    操作步驟:

    序號操作步驟注意事項
    1

    管理者登入維運平台,點選「專案管理」,選擇維運專案

    點選「日誌>效能堆疊」

    2選擇時間範圍

    可選範圍:7天前~當前日期,所選時間跨度不可超過2天(48小時)

    預設時間:2小時前~當前時間

    3選擇服務類型

    支援類型:BI、FR

    可選範圍:所選時間記憶體在的服務類型,預設全選

    注意事項:

    1)非容器化維運專案不支援選擇服務類型

    2)如不存在任一類型,則不出現該選項

    4選擇節點

    可選範圍:所選維運專案中的所有節點,預設全選

    5選擇需下載的日誌

    支援類型:

    支援下載的日誌,為第四章生成的日誌,包括

    fanruan.gc.log、thread.txt、histo.txt、hs_err.txt、top.txt

    注意事項:

    1)如不存在某種類型的日誌,則不支援下載該類型日誌

    2)容器化部署的維運專案,如安裝elasticsearch組件用於日誌儲存,則不支援該項,直接全量下載

    6點選「下載」,生成維運日誌檔案到本地電腦1)若檔案大小超過5G,則無法匯出該日誌,提示「以下日誌大小超過上限(5GB),不支援下載:xxx」
    2)若該類型日誌檔案不存在,則無法匯出該日誌,提示「以下日誌不存在:xxx」
    3)日誌下載時,檔案需要進行壓縮,若等待時間過長,使用者可點選「取消下載」按鈕停止下載
    4)下載的檔案解壓後,按照「節點-日期-服務類型-日誌類型」結構存放

    4. 生成日志

    應用場景:

    當工程當機或出現異常時,堆疊日誌可以幫助管理者快速定位問題所在的程式碼。

    當工程出現效能問題(如回應時間過長或CPU佔用過高)時,堆疊日誌可以幫助管理者理解程式的執行路徑,找到可能的效能瓶頸。

    當工程出現問題時,histo日誌可以幫助管理者追蹤使用者歷史輸入命令,保持維運人員對使用者行為的監視,追蹤問題產生的根本原因

    維運平台支援手動/自動生成堆疊和histo日誌。

    4.1 自動觸發

    1)觸發自動生成日誌

    以下情況,均會觸發自動生成日誌。

    情況
    說明
    當機觸發生成日誌

    當該維運專案出現以下情況時,自動觸發生成日誌

    CPU佔用超過80%(fr、fdl、bi-web、bi-worker):生成堆疊

    發生超過30S的GC(fr、fdl、bi-web、bi-worker、bi-master):生成堆疊和histo

    應用2分鐘無回應(fr、fdl、bi-web、bi-worker、bi-master)生成堆疊和histo

    執行緒池用量達到85%(fr、fdl、bi-web、bi-worker)生成堆疊

    連續FullGC後依舊負載較高(連續5次FullGC且負載分大於100)(fr、fdl、bi-web、bi-worker、bi-master)生成堆疊和histo

    5min內FullGC次數總和大於3次,且時間總和超過 50s(fr、fdl、bi-web、bi-worker、bi-master)生成堆疊和histo

    使用者可預設自動生成的日誌類型

    手動分析日誌觸發管理者登入維運平台,點選「專案管理」,選擇指定維運專案。

    進入「日誌>效能堆疊」頁面,當手動點選「分析」按鈕時,會先自動觸發生成一份堆疊日誌。

    2)「自動生成」的日誌

    當滿足上文條件後,自動觸發該維運專案下每個節點生成堆疊日誌。

    根據專案部署方式和所選服務類型,日誌生成在不同位置

    部署方式
    服務類型

    維運平台部署的專案fr有問題組件所在伺服器的專案掛載目錄fanruanxxx/fr/tomcat_logs/FineLog/日期資料夾內
    fdl有問題組件所在伺服器的專案掛載目錄fanruanxxx/fdl/tomcat_logs/FineLog/日期資料夾內
    bi6有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi6/tomcat_logs/FineLog/日期資料夾內
    bi-web有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-web/tomcat_logs/FineLog/日期資料夾內
    bi-engine-master有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-master/polars/logs/FineLog/日期資料夾內
    bi-engine-worker有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內
    bi-engine-worker-monitor有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內
    非維運平台部署的專案-

    當前維運專案有問題的節點所在伺服器

    %Tomcat%/logs/FineLog/日期資料夾內

    4.2 手動生成

    1)管理者登入維運平台,點選「專案管理」,選擇維運專案,點選「日誌>效能堆疊」。

    2)在「生成>手動生成」模組下,選擇服務類型。

    • 支援類型:BI、FR

    • 可選範圍:當前維運專案所有節點中存在的服務類型;非容器化維運專案不支援選擇服務類型;如不存在任一類型,則不出現該選項。

    3)點選「生成」,觸發該維運專案下每個節點生成堆疊日誌。

    4)生成的檔案位置為:

    根據專案部署方式和所選服務類型,日誌生成在不同位置

    部署方式
    服務類型

    維運平台部署的專案fr有問題組件所在伺服器的專案掛載目錄fanruanxxx/fr/tomcat_logs/FineLog/日期資料夾內
    fdl有問題組件所在伺服器的專案掛載目錄fanruanxxx/fdl/tomcat_logs/FineLog/日期資料夾內
    bi6有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi6/tomcat_logs/FineLog/日期資料夾內
    bi-web有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-web/tomcat_logs/FineLog/日期資料夾內
    bi-engine-master有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-master/polars/logs/FineLog/日期資料夾內
    bi-engine-worker有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內
    bi-engine-worker-monitor有問題組件所在伺服器的專案掛載目錄fanruanxxx/bi-engine-worker_x/polars/monitor/logs/FineLog/日期資料夾內
    非維運平台部署的專案-

    當前維運專案有問題的節點所在伺服器

    %Tomcat%/logs/FineLog/日期資料夾內

    注意事項:

    每1分鐘僅支援生成1次堆疊,以防頻繁觸發,導致系統效能差。

    4.3 生成記錄

    在效能堆疊中,展示歷史生成記錄,包含所有自動/手動觸發生成的情況。如下圖所示:

    以明細表形式展示:節點名、匯出內容、匯出開始時間、匯出時長、觸發類型、是否成功、失敗原因。

    附件列表


    主題: 專案管理
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽