从系统方面考虑,性能低下通常取决于connection的连接效率和Integration Service所在机器的负荷程度造成,常见的原因有:
多用户同时使用
不同的网络协议
网络上有多个路由及转换
源和目标数据库的I/O效率低
源和目标文件系统的I/O效率低
domain内node的I/O效率低
通常在如下方面进行优化:
1 提高网速
通过monitor检测网速是否正常,若不正常可考虑以下几种方式:
1) 如果session使用数据库作为源或目标,可减少Integration Service和目标及源的网络跳数,也可将数据库迁往服务器系统
2) 如果session使用文件作为源或目标,且Integration Service在单个节点上运行,可将文件存储在与Integration Service相同机器上
因为本地访问的速度通常是网络访问的5-20倍
如果文件是在其他的服务器上,则需要通过网络进行访问,而网络的好坏是会影响到性能的
因此,针对这种情况,可先将文件传到Integration Service所在机器上并增加磁盘空间,然后在运行session
3) 如果session包含多个分区,需确保网络有足够的带宽处理整个网络范围内的来自个分区的数据传输
2 使用多CPU
多CPU可让多个session及管道分区同时运行
但是,多CPU会导致I/O方面的问题,因为多CPU可使多个session及管道分区同时进行,如果它们都要进行I/O处理的话会降低整体的I/O效率
因此,要适当减少需要同时进行I/O操作的session及管道分区的数量
3 减少分页
当物理内存不足时,操作系统会进行分页操作。减少分页操作会减少系统的I/O操作
可增加物理内存或释放内存,内存的使用情况可通过系统工具进行监控
通常在下列情况下需要增加内存:
1) session中使用了需要大缓存的组件,如lookup
2) session使用了多个分区
4 使用CPU绑定
在多CPU的UNIX操作系统环境中,Integration Service使用了大量的系统资源。可通过CPU绑定来控制Integration Service对系统资源的使用
因为会导致在同一台机器的其他应用内存不足
如果目标或源数据库也在Integration Service所在的服务器,可使用CPU绑定来限制数据库所使用的资源
不同的操作系统有不同的命令行操作来进行CPU绑定,具体请参照个操作系统的官方文档