资源任务调度算法实现(大数据云计算做业来的)

实验目的

  • 本实验将引导学生对云计算任务调度算法的相关研究现状进行深刻分析和研究,从影响用户任务的执行效率和系统资源的使用效率的角度出发,在现有的云计算任务调度算法的基础上,进行理论创新,从模型高效和算法高效2个层面上设计云计算任务调度模型、算法并实现。

实验思路

  • 实验主要分为两大部分,虚拟服务器模拟处理任务和主服务器(主线程)模拟分发任务到各个服务器,从而实现任务调度。虚拟服务器怎么模拟处理任务,为此,咱们本次实验采起虚拟服务器资源和虚拟服务器处理任务的多线程来实现任务分配。
    任务调度:任务生成是经过随机数生成的任务大小和执行时间。任务大小和执行时间会影响到虚拟服务单任务执行时间和资源消耗。好比:任务过大,超出任何一台服务器的最大的执行的能力,就会出现任务过载,本次实验,在任务分配前须要检测。一旦发现,强行做废,并打印告知管理员。其二,极端任务,本次实验对极端任务的定义是:极端任务是这个任务执行须要的资源(内存)在全部的虚拟服务器仅此有一台服务器最大空闲时能知足此要求,这就是极端任务,极端任务须要特殊处理,不须要参与到一致性hash算法的分配算法中,由于此物仅此只能一台服务器处理。为此,咱们在定义每台的虚拟服务器资源,定义了每台服务器都有本身的任务队列,都在初始化(new Object())产生本身的内部 独立的任务分配线程,此任务分配线程只负责处理本身内部的任务队列,一旦有新的任务,就只锁上本身(经过内部标志位),直到为空时,恢复标志位。任务队列任务的添加靠主线程,一旦发现有极端任务,就会添加到对应的虚拟服务器的任务队列中。从而解决了由于单个极端任务,致使其余服务器空闲的状况( 这种极端任务处理机制大大下降的服务器空闲几率)。

实验算法

  • 本次实验采用了一致性hash算法并添加了权值,权值的改变根据虚拟服务器最大资源量和运行时每隔一段时间的资源使用率来决定权值大小,权值大小直接影响到虚拟服务器在h一致性环内的节点个数,个数越多,被分配到的几率就会也大,从而更好的实现了负载均衡。
    一致性Hash算法的应用:路由分配、ip分配、任务调度、散列随机数

实验结果

  • 极端节点特别多得状况(注:相对均衡率越小越均衡):


  • ;(注:这次试验截图故意让极端任务生成的几率大,所以就会有不少极端任务或过载任务,从而很大程度影响了相对均衡率,越小越均衡)java

  • 下面是极端任务生成的几率低的状况:算法


  • 从图中能够看出,各个虚拟服务器的柱状图都很均匀,几乎都能处于很高的资源使用率的情况,而且最终的相对均衡率很小,出现的极端任务越小,任务处理的所需的资源越小,其相对均衡率就会越小。
    公式:相对均衡率:sum(|(服务器A执行总的任务数/总的分配任务)-(服务器A最大资源/全部服务器最大资源总数)| (取绝对值))/总服务器个数 A是指各个服务器别民,

最后附上java源代码

资源调度java实现代码服务器

相关文章
相关标签/搜索