基于日志分析的地震资料处理机时精细化计算方法及系统与流程

文档序号:20187915发布日期:2020-03-27 19:20阅读:125来源:国知局
基于日志分析的地震资料处理机时精细化计算方法及系统与流程

本发明属于信息技术与石油物探领域,具体涉及一种基于日志分析的地震资料处理机时精细化计算方法及系统。



背景技术:

在地球物理勘探领域,随着多方位、高密度等地震数据采集方法普及应用,深度偏移、逆时偏移成像技术更新迭代,地震资料目标化精细化处理等新勘探需求出现,计算资源硬件规模、专业软件模块种类、单个勘探工区对应的运算数据量与算法复杂度相比较传统勘探开发流程都产生了超大幅度增涨。在地球物理云计算中心软硬件规模的不断扩充的背景下,越来越多地球物理勘探项目与用户依赖于云计算中心的高性能计算资源,针对在以地震资料处理为核心的主要业务环境,系统管理人员需要对相关业务机时使用有量化的准确掌控,并为云中心用户提供精细的机时使用报表,为整个工作流程中的计费环节提供客观标准与依据。

以往通过系统级日志及业务进程进行机时统计分析,存在死进程、业务信息缺乏、判断条件模糊、计算方法不够精细等一系列问题,同时具体到应用环境,相同集群可能同时承担多种不同业务软件的高性能计算任务,更加增加了机时统计的复杂性。

因此如何解决在实际地震资料处理业务的复杂计算环境下,以往根据操作系统级日志及业务进程进行机时统计分析过程中存在计算方法不够精细的问题仍是本领域亟待解决的问题。



技术实现要素:

本发明的特征和优点在下文的描述中部分地陈述,或者可从该描述显而易见,或者可通过实践本发明而学习。

为克服现有技术的问题,本发明提供一种基于日志分析的地震资料处理机时精细化计算方法,包括步骤:

s1、采集作业日志信息;

s2、从所述作业日志信息中获取关键字段,根据所述关键字段将所述作业日志信息分配到相应的作业队列中;

s3、采用所述作业队列对应的机时算法对所述作业队列中的作业进行机时计算,获取机时数据。

可选地,所述步骤s1中包括:

获取作业调度系统中待处理信息;

将所述待处理信息进行缓存、正则匹配后得到所述业日志信息。

可选地,所述获取作业调度系统中待处理信息包括:

获取作业调度系统输出的网页信息;

通过爬虫对所述网页信息进行爬取;

将爬取后的网页信息进行分析以获价值数据作为所述待处理信息。

可选地,所述关键字段通过正则表达式获取的。

可选地,所述作业队列包括单节点单核作业队列、单节点多核作业队列以及多节点并行队列。

可选地,在所述步骤s3中,

对所述单节点单核队列中的作业进行机时计算时,包括:根据数据库中作业关键字段分析,得出作业的起始时间与终止时间,计算出作业运行时长,作业机时=计算节点单核心×作业运行时长;

对所述单节点多核队列中的作业进行机时计算时,包括:通过正则方法将作业关键字段中涉及作业模块的npe数值录入数据库,进行过滤分析,作业机时=作业模块所使用的npe详细数值×作业运行时长;

对所述多节点并行队列中的作业进行机时计算时,包括:通过数据库中关键字段对应的多个并行队列的主节点host过滤判断出作业类型及所使用哪个并行队列,进而得出该并行队列所占用的总核数,作业机时=所使用并行队列总核数×作业运行时长。

可选地,在所述步骤s3中,包括计算分析出基于项目、用户、流程模块等多维度的机时数据。

可选地,所述步骤s3之后,包括:

将所述关键字段与所述机时数据生成机时统计报告,写入数据库中;

结合机时统计报告对作业队列中的作业分配计算节点,并设置优先等级,使作业队列中的作业处于多种作业状态。

可选地,所述步骤s3之后,包括:将所述机时数据进行展示。

本发明提供一种基于日志分析的地震资料处理机时精细化计算系统,包括:

数据采集模块,用于采集作业日志信息;

队列分配模块,用于从所述作业日志信息中获取关键字段,根据所述关键字段将所述作业日志信息分配到相应的作业队列中;

机时计算模块,用于采用所述作业队列对应的机时算法对所述作业队列中的作业进行机时计算,获取机时数据。

本发明提供一种基于日志分析的地震资料处理机时精细化计算方法及其系统、计算机存储介质,实现了对地震资料处理工区,以及向下细化到作业模块,处理流程的机时统计,并建立了地震资料处理工区信息数据库,能从业务软件层面在多个维度对地震资料处理业务的高性能资源使用进行统计分析,显著提升了机时计量统计的精细度和相关数据的参考价值。

附图说明

下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:

图1为本发明实施例的基于日志分析的地震资料处理机时精细化计算方法的流程示意图。

图2为本发明通过地震资料处理调度系统使用网页爬虫技术进行作业关键信息采集示意图。

图3为本发明实施例的基于日志分析的地震资料处理机时精细化计算方法的流程示意图。

图4为本发明实施例的基于日志分析的地震资料处理机时精细化计算系统的结构示意图。

具体实施方式

如图1所示,本发明提供一种基于日志分析的地震资料处理机时精细化计算方法,包括:

s1、采集作业日志信息;

地震勘探数据加载到地震资料处理作业流后提交至作业调度系统,作业日志信息可以来自于一个以上不同的主流商业处理软件提供的作业调度系统。有的作业调度系统输出的信息是网页信息,需要从网页信息中获取价值数据作为待处理信息。有的业调度系统输出的信息是日志形式,可以直接作为待处理信息。一般地,在采集作业日志信息时可以按地震资料处理工区进行采集。

在本发明的一个实施例中,可以通过java语言对网页信息进行抓取。java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。

如图2所示,互联网41中多个url42(即网页信息)会相互关联,可以通过爬虫43对该些url进行爬取以获取价值数据44。更具体地,url管理器判断是否有待爬url,并从调度器获取待爬取的url,定时器将所有待爬内容存放在缓存中,爬虫程序从缓存中获取url地址,获取后从缓存中移除此url。解析器将正确解析的页面相应的url重新存入url缓存中,解析器还将解析出的价值数据输出至应用层。

在进行作业日志信息的采集时,先读取相关文件,即待处理信息,并将已读取的待处理信息进行缓存,通过正则匹配后获取作业日志信息并持久化至统一的数据层。

s2、从所述作业日志信息中获取关键字段,根据所述关键字段将所述作业日志信息分配到相应的作业队列中;

考虑到程序的健壮性和效率问题,结合处理业务的关键字特征,关键字段是通过正则表达式技术获取对预先定义好的特定字符串进行逻辑过滤。本实施例中的关键字段涉及作业模块功能类型,运算负载,计算时长、资源需求、流程工期、处理类型等信息。本实施例中,作业队列包括单节点单核作业队列、单节点多核作业队列以及多节点并行队列。

例如,处理业务的关键字段有:project(项目名)、site(站点名)、level(软件版本)、host(节点主机名)、start(开始时间)、end(结束时间)、owner(用户名)、name(作业名)等。例如获取作业信息中项目关键字段:subinfo:project(.*)start

通过正则表达式对作业原始信息的匹配即可获取作业所属项目关键字段。

s3、采用所述作业队列对应的机时算法对所述作业队列中的作业进行机时计算,获取机时数据;

更具体地,在每一个队列中根据作业日志信息中作业名、项目名、用户、计算时间、计算核数、计算节点名、运行状态等数据,从而可以计算分析出基于项目、用户、流程模块等多维度的机时数据。

需要说明的是,在不同的队列中,采用的计算方法是不同的,更具体地:

单节点单核心作业机时主要计算方法步骤为:根据数据库中作业关键字段分析,得出作业的起始时间与终止时间,计算出作业运行时长,作业机时=计算节点单核心×作业运行时长(小时);

单节点多核心作业机时主要计算方法步骤为:通过正则方法将作业关键字段中涉及作业模块的npe数值录入数据库,进行过滤分析,作业机时=作业模块所使用的npe详细数值×作业运行时长(小时);

多节点并行作业主要计算方法步骤为:通过数据库中关键字段对应的多个并行队列的主节点host过滤判断出作业类型及所使用哪个并行队列,进而得出该并行队列所占用的总核数,作业机时=所使用并行队列总核数×作业运行时长(小时)。

在图1对应的实施例的基础上,本发明另一实施例提供基于日志分析的地震资料处理机时精细化计算方法中,在步骤s3之后,还包括:

s4、将所述关键字段与所述机时数据生成机时统计报告,写入数据库中;

机时统计包括可为处理项目提供精确的资源使用数据参考,并作为成本核算计量统计依据。本实施例中,在保证写入速率的同时把数据写入统一的数据层。

数据库为地震资料处理信息数据库可以采用influxdb,mysql;influxdb是一个开源的时序数据库,使用go语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而influxdb自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。

s5、结合机时统计报告对作业队列中的作业分配计算节点,并设置优先等级,使作业队列中的作业处于多种作业状态。

通过的作业不同队列,结合多种作业状态(预分析、分析、执行、运行、排队)可以实现避免作业之间的无序干扰,尽量让整个高性能集群系统的负载一致,此外,运维调度人员结合可视化展示系统,根据计算资源的具体使用情况,通过地震资料处理软件作业调度系统中权限管理、优先级设置项实现对项目权限,用户权限,作业队列的动态调整,从而保证用户占用资源的长期内公平。

在上述任一实施例的基础上,可以在步骤s3之后,还可以通过grafana等多种开源前端展示工具提供展示。

可以进行包括计算节点cpu,内存利用率,运行作业数,作业状态,作业排队数等相关可视化数据展示。从项目维度根据该项目所分配的高性能计算节点利用情况,高性能存储资源等进行不同时间区间的动态展示。

在具体实施时,请参照图3,包括步骤:

301、获取地震勘探数据;

302、将地震勘探数据加载到地震资料处理作业流;

303、将地震资料处理作业流提交到调度系统;

304、通过网页爬取和/或日志解析从调度系统中获取作业日志信息并保存到数据库中;

具体方法如上述步骤s1所示,在此不再赘述。

305、完成关键字段录入,并对关键字段进行解析将所述作业日志信息分配到相应的作业队列中;

具体方法如上述步骤s2所示,在此不再赘述。

306至308,分别对单节点单核作业队列、单节点多核作业队列以及多节点并行队列采用对应机时算法,获得机时;

具体方法如上述步骤s3所示,在此不再赘述。

309、进行基于处理项目的机时统计。

如图4所示,本发明提供一种基于日志分析的地震资料处理机时精细化计算系统,包括:数据采集模块10、队列分配模块20、机时计算模块30。其中:

数据采集模块10用于采集作业日志信息;地震勘探数据加载到地震资料处理作业流后提交至作业调度系统,作业日志信息可以来自于一个以上不同的主流商业处理软件提供的作业调度系统。有的作业调度系统输出的信息是网页信息,需要从网页信息中获取价值数据作为待处理信息。有的业调度系统输出的信息是日志形式,可以直接作为待处理信息。一般地,在采集作业日志信息时可以按地震资料处理工区进行采集。在本发明的一个实施例中,可以通过java语言对网页信息进行抓取。在进行作业日志信息的采集时,先读取相关文件,即待处理信息,并将已读取的待处理信息进行缓存,通过正则匹配后获取作业日志信息并持久化至统一的数据层。

队列分配模块20与数据采集模块10相连,用于从所述作业日志信息中获取关键字段,根据所述关键字段将所述作业日志信息分配到相应的作业队列中;考虑到程序的健壮性和效率问题,结合处理业务的关键字特征,关键字段是通过正则表达式技术获取对预先定义好的特定字符串进行逻辑过滤。本实施例中的关键字段涉及作业模块功能类型,运算负载,计算时长、资源需求、流程工期、处理类型等信息。本实施例中,作业队列包括单节点单核作业队列、单节点多核作业队列以及多节点并行队列。例如,处理业务的关键字段有:project(项目名)、site(站点名)、level(软件版本)、host(节点主机名)、start(开始时间)、end(结束时间)、owner(用户名)、name(作业名)等。例如获取作业信息中项目关键字段:subinfo:project(.*)start;通过正则表达式对作业原始信息的匹配即可获取作业所属项目关键字段。

机时计算模块30与队列分配模块20相连,用于采用所述作业队列对应的机时算法对所述作业队列中的作业进行机时计算,获取机时数据。更具体地,在每一个队列中根据作业日志信息中作业名、项目名、用户、计算时间、计算核数、计算节点名、运行状态等数据,从而可以计算分析出基于项目、用户、流程模块等多维度的机时数据。

需要说明的是,在不同的队列中,采用的计算方法是不同的,更具体地:

单节点单核心作业机时主要计算方法步骤为:根据数据库中作业关键字段分析,得出作业的起始时间与终止时间,计算出作业运行时长,作业机时=计算节点单核心×作业运行时长(小时);

单节点多核心作业机时主要计算方法步骤为:通过正则方法将作业关键字段中涉及作业模块的npe数值录入数据库,进行过滤分析,作业机时=作业模块所使用的npe详细数值×作业运行时长(小时);

多节点并行作业主要计算方法步骤为:通过数据库中关键字段对应的多个并行队列的主节点host过滤判断出作业类型及所使用哪个并行队列,进而得出该并行队列所占用的总核数,作业机时=所使用并行队列总核数×作业运行时长(小时)。

在图4对应的实施例基础上,本发明实施例提供的基于日志分析的地震资料处理机时精细化计算系统,还包括:

机时统计单元,与机时计算模块30相连,用于将所述关键字段与所述机时数据生成机时统计报告,写入数据库中;机时统计包括可为处理项目提供精确的资源使用数据参考,并作为成本核算计量统计依据。本实施例中,在保证写入速率的同时把数据写入统一的数据层。数据库为地震资料处理信息数据库可以采用influxdb,mysql;influxdb是一个开源的时序数据库,使用go语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而influxdb自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。

分配计算单元,与机时统计单元相连,用于结合机时统计报告对作业队列中的作业分配计算节点,并设置优先等级,使作业队列中的作业处于多种作业状态。

通过的作业不同队列,结合多种作业状态(预分析、分析、执行、运行、排队)可以实现避免作业之间的无序干扰,尽量让整个高性能集群系统的负载一致,此外,运维调度人员结合可视化展示系统,根据计算资源的具体使用情况,通过地震资料处理软件作业调度系统中权限管理、优先级设置项实现对项目权限,用户权限,作业队列的动态调整,从而保证用户占用资源的长期内公平。

在上述任一实施例的提供的基于日志分析的地震资料处理机时精细化计算系统基础上,包括展示单元,用于通过grafana等多种开源前端展示工具提供展示。可以进行包括计算节点cpu,内存利用率,运行作业数,作业状态,作业排队数等相关可视化数据展示。从项目维度根据该项目所分配的高性能计算节点利用情况,高性能存储资源等进行不同时间区间的动态展示。

本发明提供一种基于日志分析的地震资料处理机时精细化计算方法及其系统、通过将主流商业处理软件作业调度系统的网页信息进行获取及解析指定工区结构的处理作业日志信息,对不同作业队列,作业类型,核数等进行统计分析,将涉及到处理业务的关键字段写入influxdb数据库,并完成详细机时统计,后续亦可通过grafana等多种开源前端展示工具提供展示。本发明解决以往地球云计算中心高性能计算资源机时统计在操作系统层面较为笼统的问题,可以根据多个处理项目所使用不同业务软件环境的机时统计,实现计算资源的动态灵活调度。同时为云计算中心用户计费提供客观标准依据,为系统管理人员提供直观精细的机时数据参考。

上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1