系统性能调整

通过调整集力数据系统系统性能相关参数,可以针对不同应用场景对应调整系统的性能。

需要明确的是,参数取值的调整,往往一方面带来某方面的改进,另一方面带来某方面的不利影响,因此需要仔细阅读相关说明,并结合实际需要进行调试。

性能相关的参数,除在其他章节中已说明的环境相关的参数外,还包括缓存控制和整体性能控制两大类。

缓存控制

报表模板缓存

可以提高报表模板的加载速度。详见:报表模板缓存

报表结果缓存

报表结果缓存,控制某报表在特定参数下的运算结果是否缓存。应用该缓存会使报表展现速度大幅度提升,在某些报表在特定参数下被频繁展现时效果尤其明显。另一方面,缓存后报表并非实时的。如果需要查看实时数据需要再刷新。另外如果对报表(含参数)的访问高度分散,则应用此缓存作用大,反而增加无谓的系统开销。

报表结果缓存的保留时间也可以进行统一设置。

详见:报表结果缓存

单用户报表缓存(VR缓存)

针对一次报表访问的缓存。该缓存在本次访问结束后失效。

基于该缓存,进行打印、导出、翻页等操作时一般不必重新计算。如果该缓存过期失效,则进行相关操作时会重新计算报表。

该缓存会显著改进打印、导出、翻页等操作的性能,但也会增大系统开销。因此对该缓存的保持周期要进行合理设置。

性能控制

性能控制的作用,是根据系统的处理能力和状态来进行实时的控制,防止过多的处理请求造成系统压力过大、计算阻塞和内存溢出等问题。可控制的参数包括:

并发计算数

maxConcurrentForReport,报表引擎可同时计算报表的个数。超过该数量的将排队等待。

最大等待数

maxWaitForReport,排队等待的计算请求最大个数。当等待任务数超过最大等待数时,新请求的任务会直接返回错误信息。

最大等待时间

maxWaitTimeForReport,内存溢出后等待多长时间才允许新任务访问,以秒为单位。当某个任务造成内存溢出时,为了让并发的其他任务能顺利运行,必须经过一定的等待时间,才允许新任务访问,这个时间由maxWaitTimeForReport决定。

动态并发控制

maxCellNum,动态并发配置的主要指标,用来表示在同一时刻,所能计算的最大的单元格数量。服务器在运算过程中,动态的智能判断当前并发访问的格子数是否达到预设值,如果已经达到预设值,则阻止新任务访问,提示:报表格子数超标,稍候再访问。基于报表估算的单元格数,进行总的并发计算控制。

内存阈值

memoryLimit,根据可用内存情况控制,当剩余内存少于阈值配置的值时,则不接受报表计算请求,以起到保护系统内存,防止内存泄漏的作用。

可在/mis2/vrsr/config/viewConfig.xml中为SR设置阈值(单位为MB)。 

实时性能控制

calcReportTime,SR设置报表性能参数(单位为s),默认值是2。应用每分钟会执行一次报表运算性能测试,计算一张标准报表(内建数据集,报表单元格数目较少),并记录计算时间。每次访问SR时,统一入口会判断标准报表的计算时间是否小于设置值,如果计算耗时比设置值要长,则中止此次访问。 

可在/mis2/vrsr/config/viewConfig.xml中为SR设置实时性能控制。 

访问数控制

根据短时间内的访问请求数控制,如果请求数过高将暂时拒绝访问。

  • 每秒访问量

SR设置每秒最大访问量,默认是30次 。统一入口会统计SR的访问次数,每次访问sr时,统一入口会判断最近1s内的访问次数,超过每秒最大访问量,则中止此次访问。

  • 规定时间内的访问量

SR设置访问记录保留时间,默认是5s。设置最大访问量,默认是100次。每次访问SR时统一入口会记录此次访问,统计结果如果超出访问保留时间,则从记录中删除。每次访问sr时,统一入口会判断规定时间内的访问次数,超过最大访问量则中止此次访问。

可在/mis2/vrsr/config/viewConfig.xml中为SR设置访问数控制

  • 时间段:timeArea
  • 时间段内最大访问次数:timeAreaAccessLimit
  • 每秒最大访问次数:oneSecondAccessLimit

需要注意,某些参数的控制,需要产品对应版本支持。