第1章 概述

1.1 性能问题说明

性能问题在此是指:由于报表设计不当或者一些程序问题,导致报表未做参数条件过滤,查询出大量数据。这就造成页面展现缓慢、导出excel文件等操作耗时较长,甚至出现卡死现象。

1.2 性能问题诊断方法

1.2.1 相关配置

在report-engine-config.properties配置文件中有如下两个配置项:

  • 单次查询数据集条数上限
    dataset_overflow_row_size=100000
  • 创建/导出报表实例时间超过该时间,给出警告提示(单位:分钟)
    elapsed_time_overflow_limit=5

第一个配置项配置标识了单次查询数据集条数的上限值,也就是说如果一次查询结果中,数据条数超过了这个配置项,报表逻辑将会直接抛出异常提示信息,避免由于错误耗费大量资源。

第二个配置项设置了一个时间上限,如果在对报表进行一些操作时,执行时间超过了这个上限值,报表日志里会给出警告提示,列出耗时较长报表信息,便于分析。

1.2.2 诊断方法

打开报表日志,具体日志配置方法详见用户手册-》第2章部署FAQ-》3.3配置日志。

根据日志里的错误信息,定位问题报表。

根据日志里的超时警告信息,定位问题报表。

根据日志里的线程信息、开始执行报表实例及报表id信息,查找相应的完成执行报表实例信息,如果未找到,即可定位问题报表。

例如日志信息如下:

2013-10-28 16:35:25,468 >> ERROR >> http-8080-3 >> [UniEAP_Report] >> com.neusoft.report.engine.core.NeuReportEngine.createReport(NeuReportEngine.java:267) >> (3512)数据集的执行成本过高,查询中止

2013-10-28 16:35:25,484 >>  INFO >> http-8080-3 >> [UniEAP_Report] >> com.neusoft.report.common.event.DefaultEventHandler.handler(DefaultEventHandler.java:49) >> 用户 admin 于  2013-10-28 16:35:25 查看报表:商品销售额统计表 【rid=175d9951-1d12-4776-880f-0c884a9eff3a】 执行失败

2013-10-28 16:35:43,421 >>  INFO >> http-8080-5 >> [UniEAP_Report] >> com.neusoft.report.server.util.ReportCreate.generateRealTimeReport(ReportCreate.java:294) >>开始导出报表实例【rid=341ce0c1-f72e-43e0-98a9-1d2dc3be6a00】
2013-10-28 16:35:43,421 >> INFO >> http-8080-5 >> [UniEAP_Report] >> com.neusoft.report.engine.util.PerformanceDebug.debug(PerformanceDebug.java:49) >> Performance-Export-HTML:start

2013-10-28 16:35:43,812 >> INFO >> http-8080-5 >> [UniEAP_Report] >> com.neusoft.report.engine.util.PerformanceDebug.debug(PerformanceDebug.java:51) >> Performance-Export-HTML:end: 360000

2013-10-28 16:35:43,812 >>  INFO >> http-8080-5 >> [UniEAP_Report] >> com.neusoft.report.server.util.ReportCreate.generateRealTimeReport(ReportCreate.java:294) >> 完成导出报表实例【rid=341ce0c1-f72e-43e0-98a9-1d2dc3be6a00】用时:360000

2013-10-28 16:35:43,812 >>  WARN >> http-8080-5 >> [UniEAP_Report] >> com.neusoft.report.server.util.ReportCreate.generateRealTimeReport(ReportCreate.java:298) >> 警告:创建/导出报表实例【rid=341ce0c1-f72e-43e0-98a9-1d2dc3be6a00】用时较长:360000

根据第一条错误记录可知存在问题报表,根据第二条记录可确定是ID为‘175d9951-1d12-4776-880f-0c884a9eff3a’的报表存在问题。

根据第七条警告记录可知ID为‘341ce0c1-f72e-43e0-98a9-1d2dc3be6a00’的报表导出时间较长,可能有性能问题。

根据第六条记录可知该报表虽然有性能问题,但正常导出了,没有异常中断。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""