1 部署环境因素排查

报表业务一般比较复杂,数据量比较大,需要针对Web服务器做一些性能调优的配置。
一般包括:Web服务的内存大小配置(-Xmx建议配置4096m及以上)等,可参考Tomcat配置及优化章节内容进行检查。

2 数据连接配置排查

单个报表访问都是正常的,生产环境访问并发量大时,可能出现数据获取失败的情况。
这时候,需要检查一下报表引用的数据视图对象相关的数据连接对象配置的“最大活动连接数”是否够用。默认是50个,如果取数SQL的执行时间比较长,查询并发数大,就需要适当的调大这个配置项。
当然,如果确实是取数SQL比较慢,设计者应该优先考虑提升查询SQL的效率,可以有以下优化方式:

  • 对于数据比较稳定的字典数据,可开启数据视图的本地缓存功能(默认24小时更新一次,也可以手动更新),从而减少和数据库的查询交互;
  • 比较适当的建立表索引,提升查询速度;
  • 对于历史数据,可以针对性做一些数据的预加工处理等,减少实时查询时的数据加工。

3 报表执行日志分析

平台管理员(sa)登录乐创者门户,在【系统监控-》监控配置】中,开启“模板执行日志”选项:

监控模板执行日志功能需要配置存放模板执行日志的MongoDB数据库。

分析日志:
系统管理员(administrator)登录乐创者门户,在【系统监控-》实时监控-》模板执行日志】页面,“执行时间大于”后的输入框中录入认为比较慢的执行时长(如:5秒钟)

4 JVM情况监控与分析


通过JVM监控,可以实时了解Web应用服务器的运行情况并作出调整:

  • 如果CPU一直持续很高,可能是出现了死循环,可以把线程dump发给我们进行问题分析;
  • 正常情况下,使用的堆内存是波浪型的,如果是使用的堆内存长时间占比比较大且垃圾回收比较频繁(且垃圾回收CPU的占比高),那么可能存在内存对象被抢引用无法回收,可以把堆内存dump发给我们进行问题分析。
  • 如果堆内存占比计较大,曲线也是比较正常的波浪型的(垃圾回收CPU频繁,但占比不高),那么,可能是“-Xmx”的配置值比较小,可以根据服务器可用物理内存适当调大“-Xmx”的配置;
作者:柳杨  创建时间:2023-09-28 13:36
最后编辑:柳杨  更新时间:2024-10-31 17:13