如果Source,Target,Mapping和Session都不存在性能上的瓶颈,则问题可能会出在System
因为Integration Service运行时,它使用了System的资源去运行组件,session,以及读写数据
也使用System内存资源为Aggregator, Joiner, Lookup, Sorter, XML和Rank等组件创建缓存文件
如何判定System的性能瓶颈
使用Workflow Monitor
可在运行session时,通过在Workflow Monitor查看CPU, 内存, 及分页情况
CPU:系统运行时的CPU使用率,包括运行其他task
内存:
系统运行时的内存使用率,包括运行其他task
如果内存使用率接近95%,检测一下系统中运行的task是否都在Workflow Monitor,或者是否内存泄露
可使用系统工具检测session运行前后的内存使用率的变化来判定问题是否出现在内存
分页:
分页表示可能的内存泄露,及大批的多任务并行处理
使用系统工具
Windows环境
可以在Task Manager中通过查看属性了解系统情况
Percent processor time:如果有多个CPU,请监视每个CPU的处理器时间百分比
Pages/second:如果pages/second超过5,则可能存在过大的内存压力,称为"抖动"
Physical disks percent time:物理磁盘忙于执行读或写请求的时间百分比
Physical disks queue length:等待访问同一磁盘设备的用户数
Server total bytes per second:服务器从网络发送及接收的总字节数
Unix/Linux环境
可使用如下工具查看系统情况
top/iostat/vmstat/sar
如何解决System的性能瓶颈
1) 如果CPU使用率超过80%,请检查并发运行任务的数量。考虑更改负载或使用网格将任务分发到不同的节点。如果无法减少负载,请考虑添加更多处理器
2) 如果发生分页,请增加物理内存或减少磁盘上内存密集型应用程序的数量
3) 如果内存压力过大(不稳定),请考虑添加更多物理内存
4) 如果时间百分比较高,请调整PowerCenter的缓存以使用内存缓存,而不是写入磁盘
如果优化缓存,则请求仍在队列中,并且磁盘忙百分比至少为50%,请添加另一个磁盘设备或升级到更快的磁盘设备
还可为Session中的每个分区使用单独的磁盘
5) 如果物理磁盘队列长度大于2,可考虑添加其他磁盘设备或升级磁盘设备
还可为reader、writer和transformation线程配置使用不同的磁盘
6) 可考虑提高网络带宽
7) 在优化UNIX系统时,请为主要数据库系统优化服务器
8) 如果I/O等待的时间所占比重很高,可考虑使用其他未充分利用磁盘
例如,如果Source,Target,lookup,rank以及aggregate组件的缓存文件都在同一个磁盘上,可考虑将它们放在不同的磁盘上