系统性能调整
通过调整集力数据系统系统性能相关参数,可以针对不同应用场景对应调整系统的性能。
需要明确的是,参数取值的调整,往往一方面带来某方面的改进,另一方面带来某方面的不利影响,因此需要仔细阅读相关说明,并结合实际需要进行调试。
性能相关的参数,除在其他章节中已说明的环境相关的参数外,还包括缓存控制和整体性能控制两大类。
缓存控制
报表模板缓存
可以提高报表模板的加载速度。详见:报表模板缓存
报表结果缓存
报表结果缓存,控制某报表在特定参数下的运算结果是否缓存。应用该缓存会使报表展现速度大幅度提升,在某些报表在特定参数下被频繁展现时效果尤其明显。另一方面,缓存后报表并非实时的。如果需要查看实时数据需要再刷新。另外如果对报表(含参数)的访问高度分散,则应用此缓存作用大,反而增加无谓的系统开销。
报表结果缓存的保留时间也可以进行统一设置。
详见:报表结果缓存
单用户报表缓存(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
需要注意,某些参数的控制,需要产品对应版本支持。