反饋已提交

網絡繁忙

效能優化指導手冊

1. 概述

諸如報表加載時間長、系統内存溢出、服務器崩潰等性能問題,影響因素可能有很多,很多時候想要排查也是無從下手。

爲了幫助用戶在遇到這些性能問題時,可以進行自檢調優,現給出性能優化指導方案,可以根據步驟排查工程性能問題,優化系統性能。

單張模板加載慢請按照本文第3節進行優化,其他問題請按照本文第2節進行優化

2. 服務器性能優化

2.1 内存配置檢查

根據 維運監視指導手冊 中3.4節檢查内存配置。

重要提醒:

報表使用内存不只是 Java 堆的内存,報表把日志 IO 打包在堆外内存處理,需要設置堆外内存的上限,以避免 Java 使用過多内存。

設置方法是在内存配置文件後面加上:

-Dfineio.read_mem_limit=2   -Dfineio.write_mem_limit=1   -Dfineio.cache_mem_limit=1 -XX:MaxDirectMemorySize=2g

其中 MaxDirectMemorySize 是 NIO,-Dfineio 是 fineio,設定限制後,兩個 IO 能用的最大記憶體是5G,如果不加限制, IO 可能用到的最大記憶體是物理記憶體的一半。

Java堆記憶體使用建議配置:

1)開啓智慧釋放,操作如下圖所示:


2)根據建議設置數據上限,操作如下圖所示:


詳細介紹可參考:範本限制

2.2 環境配置項檢查

參考 運維監控指導手冊 中3.4節檢查環境配置項,重點檢查回收器類型、JDK版本。此處給出一些配置建議:

  • 建議 JVM 使用垃圾回收器類型爲 ParallelScavenge

  • 建議使用 JDK8 中 1.8.0_181 及以上版本

2.3 基本維護檢查

參考 運維監控指導手冊 中第4節檢查基本維護指标,此處也補充工程重啓操作方法:

Linux:

1)使用命令ps -ef | grep  tomcat查詢進程 pid ,如果看到有兩個進程是正常現象,以 startup.Bootstrap start 結尾的是 Tomcat 的進程,另外一個是宕機處理插件的進程;

2)使用命令kill -9 pid殺掉進程;

3)使用 cd 命令切換到 tomcat/bin 目錄 執行./startup.sh(非 root 用戶啓動,注意執行權限,以及對磁盤的讀寫權限)

Windows:

關閉 Tomcat 後,任務管理器裏找 Java 的進程,如果還有,就手動結束掉。然後在啓動 Tomcat。

2.4 其他檢查

參考 運維監控指導手冊 中3.1、3.2、3.3、3.6節進行檢查,包括端口、網絡、存儲服務、業務配置。

3. 報表性能優化

3.1 抽數緩存

适合數據量不大,取數頻繁,且數據更新時效要求不高的場景,可以把 SQL 查出來的數據存到緩存裏,規避重複取數,提高執行效率。

詳情參考:抽數緩存介紹

3.2 并行取數

報表預設是計算到的資料,再去執行 SQL 查詢,用並行取數,可以在開始的時候,就先把要計算的 SQL 一次執行完畢,可以提高取數時間。

詳情參考:數據集并行取數優化插件

該方案不适用的場景:單模板的 SQL 不多;有 SQL 執行複雜,數據庫性能不好;有模板的 SQL 實際沒有使用。

3.3 新計算引擎

如果模板數據量大,業務場景可以接受分頁的展現形式,可以考慮用新計算引擎,新計算引擎通過預編譯,後台分頁計算的形式,大大提高計算的速度。

方案介紹:新計算引擎介紹

開啓方法:開啓新計算引擎

3.4 大數據集匯出

如果有大數據量導出文件的場景,建議用大數據集導出的功能,默認的導出功能,後台肯定是全量計算,内存使用容易過多。

詳情參考:大數據集匯出

3.5 範本製作優化

在設計模板時可以使用一些技巧規避可能帶來的性能問題:巧用參數注入優化報表取數優化報表計算時間巧用相鄰連續分組


附件列表


主題: 效能優化
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉