LMT NODE PBS作业排队系统的队列通信机制
LMT NODE PBS作业排队运算系统提供了一种队列通信机制,允许消息按某种排队规则存储到持续介质或非持续介质(如内存)中,然后再转发给其它处理进程。这种存储转发机制可以保证在两个通信实体之间传递的消息不丢失、不重传,从而保证交易的完整性。
LMT NODE PBS的队列通信
LMT NODE PBS的队列通信用到了两个服务器:消息队列服务器和消息转发服务器。消息队列服务器用于对消息进行出队入队管理,消息转发服务器用于将消息从队列中取出,转发给服务器进行处理,然后将处理结果放回响应队列。
图1
LMT NODE PBS的队列通信可以分为两类:客户机对客户机和客户机对服务器,差别在于前者消息不需要转发,而后者需要将消息转发到服务器请求服务处理。因此,对于前者,配置文件中就不用提供转发服务器。
客户机对客户机的通信
这种端对端的通信模式是队列系统的简单应用,图1是端对端异步通信模式的展示。左侧客户机通过tpenqueue()函数往队列里写了一条消息,然后接着做下面的工作;右侧客户机通过tpdequeue()函数接收消息,并进行处理,之后再往队列中写消息;左侧客户机从队列中取出消息;至此,一个通信周期完成。
若使用同步通信,左侧客户往队列中写入消息后,就处于阻塞状态,只有等到取得右侧客户机的响应消息后,流程才继续往下执行。
客户机对服务器的通信
这种通信模式是LMT NODE PBS的常规应用,下面是客户机和服务器的通信流程:
图2
图2中左侧为客户机,右侧为服务器,中间为消息队列系统。右侧服务器提供了两个服务:SERVICE1和SERVICE2。在消息队列系统中,TMS_QM是LMT NODE PBS的事务管理服务器,它定义了一个队列服务器组,组中定义了一个队列空间,队列空间中定义了有四个消息队列,SERVICE1和SERVICE2分别是对应于同名的两个服务的队列(这是一种习惯的命名规则,客户机若请求服务器中的SERVICE1服务,就把请求消息放入SERVICE1队列中)。CLIENT_RPLY1是SERVICE1服务对请求的响应队列,FAILUREQ是服务器操作失败的响应队列。图中流程说明:
①客户机提出对SERVICE1的请求;
②TMQUEUE将请求消息入队;
③TMQUEUE向客户机汇报入队是否成功;
④TMQFORWARD取出请求消息;
⑤将请求消息传给SERVICE1;
⑥SERVICE1对请求作出响应;
⑦TMQFORWARD将响应消息入队;
⑧客户机要求取回响应消息;
⑨TMQUEUE取出响应消息;
⑩TMQUEUE取消息是否成功。
队列管理
在使用LMT NODE PBS之前,需要先创建队列空间和队列。并且设置好对作业的调度分配策略
作业调度和节点分配策略:
(1)提供了哪些作业调度和节点分配策略
(2)作业调度和节点分配策略是否是可配置的,用户能否*选择各种策略而不影响系统的正 常运行
(3)用户能否选择或更改各种调度参数,如采用负载平衡算法时,是否可由用户*选取负载参数
(4)当系统由许多工作站组成时,对工作站主人的影响 如何
(5)调度算法的开销由多大
(6)是否提供了检查点操作的功能,支持哪几种作业类型的检查点操作,是在操作系统级还是用户级
(7)是否提供了进程迁移 的功能
(8)系统是否对作业的状态进行监控,当作业异常是能否重新调度作业
(9)能否挂起或继续运行作业
(10)能否支持作业依赖
(11)能否支持节点的 公平共享策略、分区策略和独占策略,并由用户指定
(12)是否实现优先级策路,并允许用户修改作业的优先级
(13)是否具有分离的调度器和公开的API接 口,方便用户自己开发调度器
节点资源使用管理:
(1)系统管理员能否控制资源的可用性,能否更改资源配置,添加、删除和修改资源
(2) 系统管理员能否控制用户对资源的存取权限
(3)系统管理员能否限定资源被使用的大小
(4)用户提交作业时能否确定资源要求,作业提交后能否更改作业的资源 要求
(5)当作业完成后,能够很好地进行善后处理
(6)是否能提供Stage-in 和Stage-out功能
(8)当系统不可能满足作业的要求时,系统 能否在用户进行作业提交时采取措施
(9)加盟的工作站主人能否设置资源的可用性、存取权限以及可用时间
(10)加盟的工作站主人能否*地退出而不影响整 个系统的运行
作业节点的监控能力:
(1)系统能否有效的监控作业的所有进程,特别是分布在不同节点上的并行作业的各个进程
(2)当用户杀除作业时,系统能否彻底地杀除该作业的所有子进程,不留下僵尸进程
(3)系统管理员能否改变队列或作业的状态
(4)用户能否察看系统和作业的运行状态
(5)用户能否挂起、释放或删除作业