反饋已提交
網絡繁忙
諸如報表加載時間長、系統内存溢出、服務器崩潰等性能問題,影響因素可能有很多,很多時候想要排查也是無從下手。
爲了幫助用戶在遇到這些性能問題時,可以進行自檢調優,現給出性能優化指導方案,可以根據步驟排查工程性能問題,優化系統性能。
單張模板加載慢請按照本文第3節進行優化,其他問題請按照本文第2節進行優化
根據 維運監視指導手冊 中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)根據建議設置數據上限,操作如下圖所示:
詳細介紹可參考:範本限制
參考 運維監控指導手冊 中3.4節檢查環境配置項,重點檢查回收器類型、JDK版本。此處給出一些配置建議:
建議 JVM 使用垃圾回收器類型爲 ParallelScavenge
建議使用 JDK8 中 1.8.0_181 及以上版本
參考 運維監控指導手冊 中第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。
參考 運維監控指導手冊 中3.1、3.2、3.3、3.6節進行檢查,包括端口、網絡、存儲服務、業務配置。
适合數據量不大,取數頻繁,且數據更新時效要求不高的場景,可以把 SQL 查出來的數據存到緩存裏,規避重複取數,提高執行效率。
詳情參考:抽數緩存介紹
報表預設是計算到的資料,再去執行 SQL 查詢,用並行取數,可以在開始的時候,就先把要計算的 SQL 一次執行完畢,可以提高取數時間。
詳情參考:數據集并行取數優化插件
該方案不适用的場景:單模板的 SQL 不多;有 SQL 執行複雜,數據庫性能不好;有模板的 SQL 實際沒有使用。
如果模板數據量大,業務場景可以接受分頁的展現形式,可以考慮用新計算引擎,新計算引擎通過預編譯,後台分頁計算的形式,大大提高計算的速度。
方案介紹:新計算引擎介紹
開啟方法:開啟新計算引擎
如果有大數據量導出文件的場景,建議用大數據集導出的功能,默認的導出功能,後台肯定是全量計算,内存使用容易過多。
詳情參考:大數據集匯出
在設計模板時可以使用一些技巧規避可能帶來的性能問題:巧用參數注入、優化報表取數、優化報表計算時間、巧用相鄰連續分組
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙