Tivoli developerWorks

Archive for the ‘作业调度自动化’ Category

TWS 学习笔记 – FTA内部结构

03.29.2010 · Posted in 作业调度自动化

FTA,DM,MDM在很多环节上有类似的结构,下面的图并没有涵盖所有的部分,只包含了作业调度,作业分发的部分。其关键性的组件是Batchman,jobman,和mailman。 启动顺序:当一个FTA启动的时候,首先启动脚本启动的是netman,然后由netman初始化mailman,batchman,jobman。 netman的主要职责是接受远程FTA的消息,并动态的生成一个Writer的进程,将消息写入Mailman的消息队列mailbox.msg,Writer进程将随着任务的完成而结束。 batchman是整个任务调度的核心,主要两个任务:1)它负责根据mailman提供的任务完成最新情况(定期读取intercom.msg队列),更新任务计划文件(Symphony file),2)读取Symphony文件,解析作业之间依赖,将可以执行的作业写入courier.msg队列。 Jobman定期读取courier.msg队列中获取可以执行的作业信息,执行任务,完成之后将执行结果通知mailman(把结果写入mailman的mailbox.msg队列)。 Mailman做消息传递的核心组件,他负责接收远程FTA传递过来的作业完成情况(从netman渠道),以及本地(从jobman渠道),并将结果汇总发给batch。 从中可以看出,其中两个环节对作业的执行性能有较大的影响: 进程之间的通信都是通过异步的消息传递,因此,消息队列的查看频率是我们调优的一个主要环节,以上涉及到的哦三个重要的队列,batchman队列:intercom,jobman队列courier,以及mailman队列mailbox,在adminguide 143页有每个队列的长度以及检查频度的调优方式。 另一个重要的环节就是batchman对symphony的解析,因为TWS的调度依赖跨机器,因此任何一个任务的结束势必将广播消息,导致所有FTA的batchman扫描整个Symphony,即便所有的工作都在内存完成,也会比较慢(当symphony所包含的job数量超过一定的限度-假定按照文档是40000个,那么性能的瓶颈将会出现在batchman,最近的测试所展现的症状是这样),我目前能想到的绕行的方法是定期jnextplan,将整个作业计划切分成较小的部分。 注:由于本人也刚开始接触TWS,有些理解未必正确,仅供参考: 大图:http://ext.xoopit.com/2/m4QrH71SZXGtFDcRf.b068kLcXWV_AI2w/rmm.contents.raw?cd=a ...

TWS 性能调优

03.27.2010 · Posted in 作业调度自动化

最近的一个TWS测试,在大量Job(几十万个),Job Stream(十几万)同时提交的情况下,TWS效率有明显的下降,文档也只说明了在40000以上Jobs 对象以上,需要在各个方面进行调优,也没有确切的承载极限,下面是从Admin Guide摘出来,所用到的性能调优参数: @Network traffic Optimize the network performance on admin guide page 141 1.Critical business activities must be as close as possible to the master domain manager 2. The domain manager must be installed on as powerful a workstation as possible 3.A similarly powerful backup domain manager must be included in the network 4.The network link between the domain ...