一种基于地震数据的作业调度方法
【技术领域】
[0001] 本发明属于集群技术领域,具体涉及一种基于地震数据的作业调度方法的设计。
【背景技术】
[0002] 随着技术的不断发展,虽然单个计算机的性能越来越高,但是在针对地震数据等 大规模数据的处理时,只靠不断增强单个计算机的能力已经不能满足应用的日益增长的需 求。一般大型地震数据可以高达几百GB,且对其进行的计算非常复杂,一次地震数据处理的 运行时间最长可达十几天,因此采用集群技术为我们提供了一个解决方案。
[0003] 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的 情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其中任务调度则是集群系统中 的核心技术。
[0004] 在集群资源管理软件中,作业调度方法在很大程度上影响了整个系统的效率,一 个好的作业调度方法可以在一定的时间内减少运行作业所需的节点数目,可以运行更多的 作业,提高系统资源利用率。针对不同的应用环境与目标,调度方法也会有很大的不同,影 响任务调度的主要因素有作业类型与结构、计算机性能与系统机制、网络通信性能等。所以 不会存在一种适合于任何环境任何应用下的作业调度系统,目前的许多主流作业管理系统 都提供了灵活的调度算法接口,以达到更好的调度效果。我们需要根据实际项目中的软硬 件需求,在通用调度算法基础上设计出适合本系统的调度方法,才能够实现真正实用与高 效的调度方案。
[0005] 调度算法好坏的评价依赖于多种标准,从使用的角度应考虑调度系统的简便性、 灵活性、稳定性,从性能的角度应考虑调度系统的调度效率、系统资源利用率、系统吞吐率、 系统负载均衡等。
[0006] 系统的调度效率与调度算法设计有紧密的联系,要尽可能的缩短作业的等待时 间。作业等待时间是指集群中各作业从提交到开始运行所等待的时间长度,减少调度算法 本身所耗费的系统资源,提高系统的响应速度。
[0007] 系统吞吐率是指一定时间段内系统完成的作业数量,系统吞吐率不仅依赖于系统 中的软硬件资源,还与调度方法有很大的关系。一般来说系统资源利用率的提高能使系统 在单位时间内运行更多的作业,提高系统的吞吐率。
[0008] 负载均衡所要达到的目标是让集群中每个节点承担的作业任务量尽可能的相同。 考虑系统的负载均衡就是根据集群中节点的资源利用情况将作业分配到负载较低的节点 上,下文中所涉及的一些调度算法主要是根据作业的提交时间和作业大小依次对作业进行 调度,所以需要把负载均衡的考虑加入到调度算法的设计中,才能得到好的调度方法。
[0009] 由于Iinux系统开源软件的特性,大多数的系统信息都是通过读取配置文件的形 式进行获取。因此为了获取节点的CPU利用率、网络I/O利用情况等信息,需要读取proc 文件系统。
[0010] proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文 件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到 系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用 户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息 并提交的。
[0011] 混沌现象是非线性确定性系统中的一种内在随机过程的表现,普遍存在于自然界 中,其表现形式是一种"无序的有序"。确定性为其"有序性",而最终结果的不可预测性则为 其"无序性"。然而从严格意义上讲,对于混沌的性质判断,从数学上没有一个统一的定义。 比较常用的有Li-Yorke、Devaney、Matotto意义下的三种混纯,实际上为了刻画混纯动力 学性质往往用到Lyapunov指数和熵。
[0012] -个混沌系统的行为是许多有序行为的集合,但是每一个有序行为在正常情况下 都不占主导地位。如果以某种方式扰乱一个混沌系统,就能使该系统以它许多有序行为中 的一个来起作用。由于混沌系统能在许多不同的行为方式之间进行转换,所以显得特别灵 活。历史上混沌的研究开始于数学和物理学,然后扩展到工程领域,近来人们将混沌理论逐 渐应用到工程设计领域。
[0013] 按照混沌应用方法的不同,可以分为稳定性、综合和分析几个方面。稳定性就是利 用初值的敏感性,给系统加入微小扰动,使之进入某一希望的状态,如混沌控制;综合就是 利用人为生成的混沌以获取混沌动力学的可能的功能,如避免局部最小;分析是分析从自 然和人为复杂系统中观察得到的混沌信号以寻找隐藏其中的规律,如时间序列的非线性确 定性预测。
【发明内容】
[0014] 本发明的目的是为了解决现有技术中执行控制系统只实现了简单的FCFS调度算 法、没有考虑地震作业总的处理时间最优、负载均衡的问题,提出了一种基于地震数据的作 业调度方法。
[0015] 本发明的技术方案为:一种基于地震数据的作业调度方法,包括以下步骤:
[0016] Sl、获取集群节点的资源信息;
[0017] S2、计算地震作业的复杂度;
[0018] S3、通过基于混沌算法的作业调度策略对地震作业进行调度。
[0019] 进一步地,步骤Sl包括以下分步骤:
[0020] Sl 1、计算集群节点;
[0021] S12、读取配置文件;
[0022] S13、进行数据处理。
[0023] 进一步地,步骤S12中的配置文件包括/proc/stat系统文件、/proc/net/dev系 统文件以及/etc/mtab系统文件。
[0024] 进一步地,步骤S13中数据处理具体包括:计算节点CPU利用率、计算节点1/0利 用率、计算节点磁盘利用率以及计算集群节点的性能指标。
[0025] 进一步地,步骤S2中地震作业的复杂度基于地震作业的大小以及地震作业采用 的处理模块的类型。
[0026] 进一步地,步骤S3包括以下分步骤:
[0027] S31、算法初始化;
[0028] S32、对混沌变量进行第一次载波;
[0029] S33、用第一次载波后的混沌变量进行迭代搜索;
[0030] S34、判断经步骤S33的迭代搜索后混沌变量是否保持不变,若是则进入步骤S35, 否则返回步骤S33 ;
[0031] S35、对混沌变量进行第二次载波;
[0032] S36、用第二次载波后的混沌变量继续进行迭代搜索;
[0033] S37、判断经步骤S36的迭代搜索后混沌变量是否保持不变,若是则进入步骤S38, 否则返回步骤S36 ;
[0034] S38、输出最优解。
[0035] 本发明的有益效果是:本发明基于总的处理时间最优、负载均衡等条件的地震作 业调度策略,通过获取到的集群节点的资源信息和地震作业的复杂度,利用混沌算法的地 震作业调度策略,可以达到以下有益效果:
[0036] (1)本发明中获取集群节点的资源信息可以帮助用户详细的了解集群节点的资源 利用情况;
[0037] (2)本发明将地震作业复杂度量化为基于地震作业的大小和地震模块的类型的作 业运行的复杂度;
[0038] (3)通过本发明建立的地震作业调度模型,利用了混沌算法的优化策略,考虑了节 点的负载平衡和作业运行时间最少的优化目标,最终完成对地震作业的调度。
【附图说明】
[0039] 图1为本发明提供的一种基于地震数据的作业调度方法流程图。
[0040] 图2为本发明步骤Sl的分步骤流程图。
[0041 ] 图3为本发明步骤S3的分步骤流程图。
【具体实施方式】
[0042] 下面结合附图对本发明的实施例作进一步的说明。
[0043] 本发明提供了一种基于地震数据的作业调度方法,如图1所示,包括以下步骤:
[0044] Sl、获取集群节点的资源信息。
[0045] 如图2所示,该步骤包括以下分步骤:
[0046] Sl 1、计算集群节点。
[0047] S12、读取配置文件,包括/proc/stat系统文件、/proc/net/dev系统文件以及/ etc/mtab系统文件。
[0048] 其中,/proc/stat系统文件包含了系统启动以来的许多关于kernel和系统的统 计信息,其中包括CPU运行情况、中断统计、启动时间、上下文切换次数、运行中的进程等信 息。
[0049] /proc/net/dev系统文件包含了系统网卡统计信息。
[0050] /etc/mtab系统文件记载的是现在系统已经装载的文件系统,包括操作系统建立 的虚拟文件等。
[0051] S13、进行数据处理,具体包括:计算节点CPU利用率、计算节点I/O利用率、计算节 点磁盘利用率以及计算集群节点的性能指标。
[0052] 为了计算节点CPU利用率,需要从/proc/stat系统文件中提取四个数据:用户 模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间 (idle)。它们均位于/proc/stat系统文件的第一行。则节点CPU利用率如公式(1)所示:
[0053] cpu_usage = 100*(user+nice+system)/(user+nice+system+idle) (I)
[0054] 为了得到节点I/O利用率的相关数据,需要从/proc/net/dev系统文件中获得两 个数据:从本机输出的数据包数,流入本机的数据包数,它们都位于/proc/