性能计数器

全部组件都有计数器用来记录运行时各方面的数值,好比Integration Service会追踪记录每一个组件的input rows, output rows以及error rows的数量,并将这些数字记在计数器里。其中,一些组件的计数器是跟性能相关的,专门用来记录性能有关的数字信息。以下列的计数器,可经过查看它们来肯定性能瓶颈并达到性能优化的目的html


1) Errorrows计数器
  记录error记录条数,需查看以下计数器来分析缘由
  Transformation_errorrows

  当有数据流有大量Error rows时,会影响到性能
  具体请参照:排除Transformation Errors

2) Readfromcache和Writetocache计数器
  记录缓存读写记录条数
  当session包含Aggregator, Rank, 和Joiner组件时,需查看以下计数器来分析缘由
    Transformation_readfromcache
    Transformation_writetocache
    Transformation_readfromdisk
    Transformation_writetodisk

  能够在session运行时,经过在monitor里查看运行session的log来查看细节

  查看磁盘访问时,须要计算"缓存命中率"和"缓存丢失率"
    缓存命中率计算公式:[(# of reads from disk) + (# of writes to disk)]/[(# of reads from memory cache) + (# of writes to memory cache)]
    缓存丢失率计算公式:[1 - 缓存命中率]

  所以最小化磁盘读写,最大化缓存读写能够最大限度的提高性能,其中缓存命中率为1是最理想的状况

3) Readfromdisk和Writetodisk计数器
  记录磁盘读写记录的条数
  当session包含Aggregator, Rank, 和Joiner组件时,需查看以下计数器来分析缘由
    Transformation_readfromdisk
    Transformation_writetodisk

  可在session运行时,经过monitor查看session运行log的细节

  若是这两个计数器的值都大于0,说明缓存小,可经过调高缓存大小提高性能

  关于缓存,包括index cache和data cache
  其中index cache是存储的group信息的,data cache存储的是组件转换后的数据
  两个缓存均可以提高性能,但因为组件转换后的数据量每每是很是大的,所以data cache需调高的要比index cache多
  但若处理的数据量超过可用内存时,可调高index cache提高性能

  若是session中的Aggregator是不断累积增加的,Integration Service会不断的从磁盘读写历史Aggregated数据,
  则下面的计数器值会大于零
    Aggregator_readtodisk
    Aggregator_writetodisk
  若是预先就知道大致的数据量时,可将缓存调整为合适的大小,由于缓存过大或太小都会有性能上的损失

4) Rowsinlookupcache计数器
  当session中包含多个lookup组件时,可能会下降性能
  若lookup表很大时,可经过优化lookup expressions来提升效率
  具体请参照:Optimizing Lookup Transformationsexpress

相关文章
相关标签/搜索