性能計數器

全部組件都有計數器用來記錄運行時各方面的數值,好比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

相關文章
相關標籤/搜索