使用线程统计信息(Thread Statistics)

 

可在session log中使用线程统计信息来判断source,target或组的性能瓶颈
默认状况下,Integration Service在运行session时,使用一个reader thread,一个transformation thread,还有一个writer thread
若是其中一个thread有很是高的busy percentage,则说明该部分可能有性能上的瓶颈session

 

session log中提供如下几个线程相关的信息:app

  Run time:
    运行时间,即thread运行的总时间

  Idle time:
    空闲时间,即thread运行的空闲时间,它包括了thread等待其余thread处理的时间
    空闲时间包括的是thread被Integration Service锁定的时间,而不是被操做系统锁定的时间

  Busy time:
    工做时间,即工做时间占总运行时间的百分比
    公式:(run time - idle time) / run time X 100
    若是总的运行时间很是短,如60秒之内,则能够忽略,由于这么短的时间不足以断定为性能上的瓶颈

  Thread work time:
    Integration Service处理运行组件所花费的时间
    在session log中,使用以下格式显示,若是组件花费的时间不长,则它是不会出如今session log中的
      Thread work time breakdown:
        <transformation name>: <number> percent
        <transformation name>: <number> percent
        <transformation name>: <number> percent

    若是在session log中,thread没有准确的统计信息,则说明session运行的时间很短,所以在session log中会提示统计信息不许确

评估性能瓶颈
  使用线程统计信息评估性能瓶颈,主要经过如下几点:
    1 若是reader和writer线程的Busy time是100%,能够考虑在source和target中使用string类型,由于针对非string类型需额外处理
    2 若是某一组件的work time是100%,能够考虑在segment中追加一个分区点
     当向mapping追加一个分区点时,Integration Service会在session运行时增长处理该组件的线程数
     但若是所在机器的内存已达到或者接近满负荷状态,则不要进行该操做
    3 若是一个组件须要比其余组件更多的处理时间,则可考虑为该组件追加一个pass-through partition point 性能

实例spa

当运行session,session log中关于线程相关的信息会像以下:

***** RUN INFO FOR TGT LOAD ORDER GROUP [1], CONCURRENT SET [1] *****
Thread [READER_1_1_1] created for [the read stage] of partition point [SQ_two_gig_file_32B_rows] has completed.
    Total Run Time = [505.871140] secs
    Total Idle Time = [457.038313] secs
    Busy Percentage = [9.653215]
Thread [TRANSF_1_1_1] created for [the transformation stage] of partition point [SQ_two_gig_file_32B_rows] has completed.
    Total Run Time = [506.230461] secs
    Total Idle Time = [1.390318] secs
    Busy Percentage = [99.725359]
    Thread work time breakdown:
        LKP_ADDRESS: 25.000000 percent
        SRT_ADDRESS: 21.551724 percent
        RTR_ZIP_CODE: 53.448276 percent
Thread [WRITER_1_*_1] created for [the write stage] of partition point [scratch_out_32B] has completed.
    Total Run Time = [507.027212] secs
    Total Idle Time = [384.632435] secs
    Busy Percentage = [24.139686]

log中包含了以下信息:
1 运行transformation的整体时间是506秒,工做时间是99.7%,可得知transformation thread几乎没有空闲时间,所以可断定transformation是该session的性能瓶颈
2 reader thread和writer thread的的工做时间分别为9%和24%,可得知空闲的时间占了大部分,所以可断定reader和writter并不存在性能瓶颈
3 关于断定transformation中是哪一个组件致使性能问题,可参考Thread work time breakdown列表,可看到组件RTR_ZIP_CODE的工做时间最高,是53%,所以可针对此组件调
相关文章
相关标签/搜索