专利名称:基于事件触发机制的网格资源计费信息即时收集方法
技术领域:
本发明涉及一种网格环境下的资源计费技术,特别涉及一种基于事件触发机制的网格资源计费信息即时收集方法。
背景技术:
网格是一个在地理位置上广泛分布的、开放式的分布式系统。它是在现有互联网的基础上借助网格中间件把分散的资源整合起来,实现各种资源的共享和协同工作。随着 社会的发展、科技的进步,科学计算、企业计算等应用对计算能力的需求不断增加,网格就 是用以满足这种大规模计算需求的基础设施。对于这种大规模的网格来说,每天都有大量的作业投入到网格中进行计算。如果能有效地统计和记录这些作业对网格计算资源的消费数据,不仅能够帮助了解网格用户对 网格资源的贡献和消费情况,同时还有利于制定相应的措施来减少对网格计算资源的浪费 和不合理利用。网格计费系统正是研究在网格环境下如何进行网格资源计费的系统。而如 何高效地统计和记录网格作业对各种计算资源的消费数据是网格计费系统中的一个重要 部分。在传统的网格计费系统当中,针对网格资源计费信息的收集所采取的方案都是基于对作业管理系统中的计费日志文件的解析。因此传统的计费信息收集方案都与计费日志 文件存在一种紧耦合的关系。这种传统的计费信息收集方案存在以下两个不足1)计费信息的时间延迟太长这里提到的时间延迟是指从作业执行完毕到该作业所消费的资源量被解析出来并存入数据库这个时间段。当今颇具代表性和影响力的几种作业管理系统,如PBS、C0ND0R、 LSF等系统都是每天产生一个作业计费日志文件,该文件中存储了当天所执行的每一个作 业对资源的消费信息。而这种日志文件中的内容,是随着每一个作业的执行逐渐被写入的。 传统的计费信息收集方案就是利用每天解析一次这种日志文件的措施来收集计费信息。网 格系统在一天内要接收大量的作业,而解析工作却要等到这一天结束之后才可进行,因此 随着作业完成时间的不同,作业的计费信息可能会有最多将近24个小时的时间延迟。这样 做的好处是可以避免负载高峰,但是这样大的时间延迟对于有些网格用户来说是无法忍受 的。2)计费信息遗漏和重复传统的计费信息收集方案是启动一个守护进程,在每天系统最空闲的时候,比如凌晨0点执行解析任务。因为计费日志文件是以当天的日期命名的,因此日志解析任务仅 根据日志文件的名字中含有的日期来确定应该解析的文件。如果解析任务在执行过程中出 错,且解析任务来不及及时恢复,那么在当天执行的一些作业的计费信息将得不到解析,就 会造成计费信息的遗漏。如果及时恢复解析任务,而没有记录出错前解析的进度,那么又将 有部分作业的计费信息是重复的。这些错误在资源计费这样要求信息高度准确的领域中是 绝对不能发生的。为了应对解析任务出错的问题,有些计费信息收集方案采用对解析过的文件进行按行标记的方法,如果解析任务出错,则解析任务及时恢复后逐行扫描该文件,从 未标记的行开始解析,这样虽然可以解决计费信息重复的问题,但是这无疑增加了管理员 的负担和系统的性能开销,这种处理过程也是相当复杂的。
发明内容
针对背景技术所述传统计费信息收集方案存在的缺陷,本发明的目的在于提供一 种实现简单、高效的基于事件触发机制的网格资源计费信息即时收集方法。为达到以上目的,本发明是采取如下技术方案予以实现的一种基于事件触发机制的网格资源计费信息即时收集方法,包括下述步骤(1)在网格计费系统内运行一个监控线程jobSupervisor,该线程实时地监控所 有作业的状态。一旦监控到作业的状态为触发状态finishexecution时,则立即激活网格 计费系统中的网格资源使用记录收集器组件对该作业的计费信息进行收集;(2)首先执行作业管理系统命令tracejob,该命令返回一个包含作业在执行过程 中所使用的资源量信息的文本;(3)当该命令执行失败,则作业的状态仍然为finishexecution,等待监控线程 jobSupervisor在下一个监控过程中重新对该作业所使用的资源量进行步骤(1)的收集;(4)当该命令执行成功,则对步骤(2)中返回的文本进行解析,根据特定的正则表 达式对所需要收集的计费信息进行匹配,并将解析后的信息进行存储;(5)当步骤⑷中解析文本时出错,则重新对作业管理系统命令tracejob返回的 文本执行解析任务;(6)最后将步骤(4)解析后作业的状态置为completion,至此作业的计费信息收
集结束。上述方案中,所述作业的触发状态finishexecution按照以下步骤获得(1)作业管理系统首先将作业提交到全局队列中,并将其状态置为submitted,等 待调度;(2)状态为submitted的作业被调度算法处理并产生了调度决策,则将其状态置 为scheduled,等待分派;上述等待调度的submitted作业或等待分派的scheduled作业,如果没有调度或 分派成功,则将该两种状态置为waiting_g,等待下一次调度;(3)状态为scheduled的作业被分派到本地作业系统,则将其状态置为 dispatched,等待本地作业系统启动执行;(4)状态为dispatched的作业被本地作业系统启动成功,则将其状态置为 running ;启动失败,则将其状态置为waiting」,重新排队等待启动;(5)状态为running的作业被本地作业系统执行完毕,则将其状态置为 finishexecution,即为等待计费信息收集的触发状态。本发明的基于事件触发机制的网格资源计费信息即时收集方法,解除了网格资源 计费信息与作业管理系统中的计费日志文件的紧耦合关系,使网格资源计费信息的收集与 作业管理系统中的计费日志文件无关。一旦作业执行完毕,就即时地对作业的计费信息进 行收集,这种机制很大程度上降低了计费信息的时间延迟。同时,利用这种机制在收集作业
4的计费信息时,如果文本解析失败,则重新对作业查询命令返回的文本执行解析任务。如果 作业查询命令执行失败,则作业的状态仍然为finishexecution的触发状态,等待监控线 程jobSupervisor在下一个监控过程中重新对作业所使用的资源量进行收集。这样即排除 了计费信息的遗漏,又不会出现计费信息的重复问题。该方法简单、高效地实现了网格资源 计费信息的收集。
图1为本发明的计费信息收集工作流程图。图2为图1中的作业触发事件finishexecution的后续工作流程图。
图3为本发明的实际效果图。
具体实施例方式下面结合附图对本发明作进一步的详细说明。如图1所示,一种基于事件触发机制的网格资源计费信息即时收集方法,包括下 述步骤(1)在网格计费系统内运行一个监控线程jobSupervisor,该线程实时地监控所 有作业的状态。一旦监控到作业的状态为触发状态finishexecution时,则立即激活网格 计费系统中的网格资源使用记录收集器组件对该作业的计费信息进行收集;(2)首先执行作业管理系统命令trace job,该命令返回一个包含作业在执行过程 中所使用的资源信息量的文本;(3)若该命令执行失败,则作业的状态仍然为finishexecution,等待监控线程 jobSupervisor在下一个监控过程中重新对该作业所使用的资源量进行步骤(1)的收集;(4)若该命令执行成功,则对步骤(2)中返回的文本进行解析,根据特定的正则表 达式对所需要收集的计费信息进行匹配,并将解析后的信息进行存储;(5)当步骤(4)中解析文本时出错,则返回步骤(4),重新对作业管理系统命令 trace job返回的文本执行解析任务;(6)最后将步骤(4)解析后作业的状态置为completion,至此作业的计费信息收 集结束。这样就有效地防止了传统的资源计费信息收集方案中有可能存在的计费信息遗漏 和重复的问题。如图2所示,本发明基于事件触发机制的作业触发状态finishexecution按照以 下步骤获得(1)作业管理系统首先将作业提交到全局队列中,并将其状态置为submitted,等 待调度;(2)状态为submitted的作业若被调度管理器处理并产生调度决策,将其状态置 为scheduled,等待分派;上面(1)、(2)步骤中,状态为submitted或scheduled状态的作业,如果调度或分 派没有成功,则将相应状态置为waiting_g,等待下一次调度; (3)状态为scheduled的作业若被分派到本地作业系统,将其状态置为 dispatched,等待本地作业系统启动执行;
(4)状态为dispatched的作业若被本地作业系统启动成功,则将其状态置为running ;若启动失败,则将其状态置为Waiting_l,重新排队等待启动;(5)状态为running的作业若被本地作业系统执行完毕,则将其状态置为finishexecution,即为等待计费信息收集的触发状态。图3为采用本发明方法的资源计费信息的时间延迟的测试结果。这里的时间延迟定义为从作业执行完毕到该作业所消费的资源量被解析出来并存入数据库这个时间间隔。其中横轴代表作业号,纵轴代表从作业执行完毕到该作业所消费的资源量被解析出来并存入数据库的时间间隔,单位是ms。由图3可知利用本发明的基于事件触发机制的网格资源计费信息即时收集方法,可以将资源计费信息的平均延迟时间缩短到1. 2秒左右。
权利要求
一种基于事件触发机制的网格资源计费信息即时收集方法,其特征在于,包括下述步骤(1)在网格计费系统内运行一个监控线程jobSupervisor,该线程实时地监控所有作业的状态。一旦监控到作业的状态为触发状态finishexecution时,则立即激活网格计费系统中的网格资源使用记录收集器组件对该作业的计费信息进行收集;(2)首先执行作业管理系统命令tracejob,该命令返回一个包含作业在执行过程中所使用的资源量信息的文本;(3)当该命令执行失败,则作业的状态仍然为finishexecution,等待监控线程jobSupervisor在下一个监控过程中重新对该作业所使用的资源量进行步骤(1)的收集;(4)当该命令执行成功,则对步骤(2)中返回的文本进行解析,根据特定的正则表达式对所需要收集的计费信息进行匹配,并将解析后的信息进行存储;(5)当步骤(4)中解析文本时出错,则重新对作业管理系统命令tracejob返回的文本执行解析任务;(6)最后将步骤(4)解析后作业的状态置为completion,至此作业的计费信息收集结束。
2.根据权利要求1所述的基于事件触发机制的网格资源计费信息即时收集方法,其特 征在于,所述作业的触发状态finishexecution按照以下步骤获得(1)作业管理系统首先将作业提交到全局队列中,并将其状态置为submitted,等待调度;(2)状态为submitted的作业被调度算法处理并产生了调度决策,则将其状态置为 scheduled,等待分派;(3)状态为scheduled的作业被分派到本地作业系统,则将其状态置为dispatched,等 待本地作业系统启动执行;(4)状态为dispatched的作业被本地作业系统启动成功,则将其状态置为running;(5)状态为running的作业被本地作业系统执行完毕,则将其状态置为 finishexecution,即为等待计费信息收集的触发状态。
3.根据权利要求2所述的基于事件触发机制的网格资源计费信息即时收集方法,其特 征在于,所述等待调度的submitted作业或等待分派的scheduled作业,如果没有成功,则 将该两种状态置为waiting_g,等待下一次调度。
4.根据权利要求2所述的基于事件触发机制的网格资源计费信息即时收集方法,其特 征在于,所述scheduled作业启动失败,则将其状态置为Waiting_l,重新排队等待启动。
全文摘要
本发明公开了一种基于事件触发机制的网格资源计费信息即时收集方法,当线程jobSupervisor监控到触发状态的作业finishexecution时,激活网格计费系统中的网格资源使用记录收集器组件,调用作业管理系统提供的作业查询命令,该命令的返回值是一个包含作业在执行过程中所使用的资源量信息的文本,然后对该文本进行解析,根据特定的正则表达式对所需收集的计费信息进行匹配,即可完成对本作业在执行过程中所使用的资源量的收集,再将计费信息存入数据库进行持久性存储,最后把作业的状态转化为completion。如果文本解析失败,则重新对作业查询命令返回的文本执行解析任务。
文档编号H04L12/14GK101800654SQ20101012641
公开日2010年8月11日 申请日期2010年3月18日 优先权日2010年3月18日
发明者伍卫国, 吕太强, 张兴军, 曾灵萍, 朱正东, 李炳毅, 田红波, 董小社, 赵晓昳 申请人:西安交通大学