专利名称:一种云计算开放平台的调度方法
技术领域:
本发明属于计算机信息分析与数据处理技术领域,具体涉及ー种云计算开放平台的调度方法。
背景技术:
云计算是当前国内外商业和科研机构研究的热点之一,是网格计算、并行计算、分布式计算的发展,是ー种新兴的商业计算模式。它采用了成熟的虚拟化技术将数据中心的资源打包为互联网上的用户提供按需服务。作业调度与资源分配是云计算的两个关键技术,云计算的商业性使其关注对用户的服务质量,其虚拟化技术使得资源分配和作业调度不同于以往的并行分布式计算。在网格计算,分布式计算、并行计算中,作业调度和资源分配是广泛研究的内容。传统的作业调度、资源分配研究注重效率,而资源分配的公平性也是
关系到用户服务质量、系统的负载均衡性、任务完成效率的ー个重要方面。尤其是云计算是ー种商业实现,目的在于为不同的用户提供服务、计算能力、存储等,需要更加注重用户需求的满足度。与云计算一同发展的还有Web开放平台。作为ー种新的网络服务模式,Web开放平台首先提供ー个基本的服务,然后通过开放自身的接ロ,帮助第三方开发者通过运用和组装其接ロ以及其他第三方服务接ロ产生新的应用,保证该应用能够统ー运行在这个开放平台之上;用户使用开放平台时,能够更多更密集的完成多种网络活动,平台为用户提供各种服务及相关保障。开放平台的基本的服务可以是已有的,例如门户、博客,也可以是新兴的,例如用户关系。I.多线程并行与互斥技术每个正在系统上运行的程序都是ー个进程。每个进程包含ー个或多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是ー组指令的集合,或者是程序的特殊段,它可以在程序里独立执行,也可以把它理解为代码运行的上下文,所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务,通常由操作系统负责多个线程的调度和执行。当有多个线程并行运行吋,采用线程池对多线程进行管理。线程池是ー种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另ー个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始終保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另ー个辅助线程,但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但它们要等到其它线程完成后才启动。在多线程环境下,采用信号量完成线程间的互斥和同歩。信号量是在多线程环境下使用的ー种全局共有数据结构,是可以用来保证两个或多个关键代码段不被并发调用。在进入ー个关键代码段之前,线程必须获取ー个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量,其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建ー个信号量,然后将获取信号量(Acquire Semaphore)以及释放信号量(Release Semaphore)分别放置在每个关键代码段的首末端,确认这些信号量引用的是初始创建的信号量。2.多处理器分配和负载均衡技术多处理器任务分配和负载均衡是在多处理器核心的环境下,对处理任务进行动态分配和调试,从而提高处理器利用率,实现多线程并行的调度响应。多处理器系统的调度模型主要包括处理器模型、任务模型及调度算法三部分。处理器模型描述处理器结构和处理能力等信息,任务模型描述调度等待处理的任务所需要的相关信息。设ー个多处理器系统由m个处理器(P1, P2,…,Pffl)及K个资源(Res = r1;r2,…,rk),处理能力Ci (i = 1,2, ---,m)表示处理器Pi在单位时间内处理任务的能力,多处理器系统的处理能力TPC定义为:
权利要求
1.一种云计算开放平台的调度方法,其特征在于,包括如下步骤 第一歩、中央服务器构造若干并行的多线程,并构造进程池,之后把构造的进程放入进程池; 第二步、注册中央服务器创建并启动守护进程,由主线程初始化全局变量,全局变量至少应该包括信号量,子线程状态集以及结果集,用于进行子线程同步及记录查询记录; 第三步、运行在中央服务器中的负载均衡器初始化通信端ロ后等待前端Web代理服务器进程的连接,当有服务器连接请求到来吋,负载均衡器生成一个线程与该服务器通信,负载均衡器继续等待其它服务器的连接请求,当一个新的客户请求服务时,负载均衡器从信息表中选择ー个负载最低的即负载权值最大的服务器为其服务; 第四步、中央服务器处理线程池中的请求,并调用应用服务器的服务,根据用户权限调用应用服务器集群的多核并行处理器,完成进程和线程到处理器节点的分配; 第五步、中央服务器收集数据库服务器的数据,处理分布式数据; 第六步、中央服务器调用集群服务,并整合海量数据返回给web代理服务器调用,同时归还当前请求的线程到线程池,继续监听用户的请求并从线程池中调用空闲的线程。
2.根据权利要求I所述的云计算开放平台的调度方法,其特征在于,第一歩具体包括如下分步骤 .1)以FORK-JOIN结构为模型创建并发线程模型; .2)将守护线程FORK出来的线程放入线程池,由线程池负责线程的生命周期管理; .3)在多线程并行处理环境下,采用变量mutex为互斥信号量,用于实现多线程环境下的资源访问的同步和互斥;该互斥信号量的工作过程如下当请求ー个使用mutex来表示的资源时,进程先读取mutex的值,以判断相应的资源是否可用;当mutex的值大于O时,表明有资源可以请求;等于O时,表明无可用资源,进程进入睡眠状态直至有可用资源时;当进程不再使用ー个信号量控制的共享资源吋,mutex的值增I。
3.根据权利要求I所述的云计算开放平台的调度方法,其特征在于,第三步所述的负载均衡器具体的负载均衡策略为当云计算开放平台的结点初次投入使用时,设定ー个初始的权值SW(Ni),随着结点负载的变化,均衡器对权值进行调整,权值由结点运行时各方面的參数动态计算得出,结点Ni的权值用如下式子进行描述Sff (Ni) = Kq*L_CPU (Ni) +K^L.Memory (Ni) +K2*L_Process (Ni) +K3*L_I0 (Ni) +K4*L_Response (Ni) 其中,Ktl、K1、K2、K3和K4表示常数系数,L_CPU(Ni)为结点Ni的CPU使用率,L_Memory (Ni)为结点Ni的内存使用率,I^PiOcess(Ni)为结点Ni的访问率,LJO(Ni)为结点Ni的磁盘I/O的占有率、I^Response(Ni)为结点Ni的进程响应时间,LJPU(Ni) = 1_P_CPU(Ni),其中,P_CPU(Ni)表示当前CPU的利用率。
4.根据权利要求I所述的云计算开放平台的调度方法,其特征在于,第四步具体包括如下分步骤 .1)任务分配模型的建立 设应用服务器集群包含Nn_个处理节点Dtl, D1,…,Dn^1,待分配的并行程序有Npm。个进程Pc^P1,…,pNproc-I,进程Pi包含Mi个线程Ttl, T1,…,TM「X,并行程序的总线程个数Nproc~[Nthread = Yj Mk ' た=O 将待分配的并行程序表示为ー个任务关系图,具体为ー个无向图G = (V,E),其中V是应用服务器集群中各个应用服务器节点的集合IVJ,节点Vi对应ー个ニ元组〈1\,Pi) ;E是无向边的集合{Eu};连接节点Vi和 ' 的e E,表示线程Ti和Tj间的通信或共享数据,边的权值Wu表示两个线程通信或共享数据的频繁程度; 2)进行两轮操作,第一轮操作完成中央服务器响应进程到集 群服务器的分配;第ニ轮操作完成处理服务器节点内线程到处理器核的分配;每ー轮操作包含多次迭代,具体处理过程如下从输入的初始任务关系图开始,毎次选择具有最大权值的边,合并这条边的两个顶点,新生成的节点中所包含的线程个数必须小于等于ー个阈值;重复该过程,直到任务关系图中节点的个数等于中央服务器当前线程池中未分配的线程个数;第一、ニ轮操作使用的阈值分别按以下公式计算 ΓΓτν I 〕Thresholdfirst mund =Max,Μ· χ(1 + ), 0< <1 vL Proc J ノ T1 77 ,, \ Threasholdfirst round Threshnoldsecond round = -^ ^ _core_ 其中,ThreshoIdfirst round表示第一轮操作的处理节点个数的阈值,ThreshhoIdsecond round表示第二轮操作的复合节点个数的阈值,[]表示上取整运算,Mmax为进程拥有的最多线程数,N。,为现有的进程数、Max O表示比较传入的參数并取最大值,α是ー个百分比值,表示在均衡负载和減少通讯之间进行权衡;具体分为如下分步骤 2a)对第一轮操作,初始的任务关系图以各服务器个体为单位进行初步的划分,即图中的复合节点数=进程个数,每个复合节点对应ー个进程,包含在复合节点内的线程均属于该进程;第一轮操作的结束条件是图中复合节点个数< ThreSholdfirSt Mund,结束时图中每个复合节点为一个子图,对应ー个处理节点,包含在子图中的线程应分配给该处理节点;2b)对第一轮操作划分出的每个子图都进行第二轮操作,即第二轮操作的初始任务关系图为第一轮操作得到的子图,第二轮操作的结束条件是图中资源池中被调度的进程数^ Threshholdsecond round,结束时图中每个复合节点对应ー个进程,包含在中央服务器中的线程池的线程应分配给该处理器核; 2c)分析请求报文的目标IP地址并据此负载均衡,在服务器的负载平衡情况下将相同目标IP地址的请求调度到同一个节点,具体为首先找出目标IP地址最近使用的节点,若该服务节点是可用的且没有超载,则由负载均衡服务器将用户请求发送到该服务节点;若服务节点不存在,或该服务节点超载且有服务节点处于其一半的工作负载,则轮询各服务节点选出链接最少的服务节点,并将请求发送到该服务节点。
全文摘要
本发明公开了一种云计算开放平台的调度方法,具体通过维护中央服务器来监听海量用户的调用请求,动态调度集群服务器的业务服务和数据服务,同时根据用户的使用级别调用可装卸的服务组件并调度分配多核处理器的多线程能力。本发明的方法能有效克服传统开放平台缺乏可扩展性和伸缩性的缺陷,建立了快速搭建部署应用运行环境和动态调整应用运行时环境这两个目标,做到最大效率地利用现有设备并组建服务;同时通过多核计算和多线程技术,提高系统服务的调度速度和响应能力。
文档编号G06F9/50GK102681889SQ20121012862
公开日2012年9月19日 申请日期2012年4月27日 优先权日2012年4月27日
发明者唐雪飞, 王威, 陈科 申请人:电子科技大学