掌桥专利:专业的专利平台
掌桥专利
首页

基于云资源运算特性可调度潜力评价机制

文献发布时间:2024-04-18 19:44:28



技术领域

本发明属于平台任务调度技术领域,具体涉及基于云资源运算特性可调度潜力评价机制。

背景技术

随着大数据、物联网、云计算、信息物理融合系统等技术的发展及其在制造业的渗透,孕育了基于知识、面向服务、敏捷高效、绿色环保的网络化智能制造新模式-云制造。制造业运用先进的技术将分散的、闲置的制造资源虚拟化分类整理,发布至云平台,为用户提供按需使用、随时获取的制造全生命周期服务,最终实现更大效率地使用闲置资源,实现制造资源共享和企业协作。

Hadoop是开源的云计算架构,主要由MapReduce编程模型和HDFS系统组成。目前,对Hadoop性能优化的研究主要有两种方法,一是基于配置文件的性能优化,从配置文件入手,改变配置参数以提高Hadoop集群的性能。现有的调度局限性比较大,缺乏动态性和灵活性。

发明内容

本发明的目的在于提供一种解决整体响应时间缺乏动态性和灵活性的基于云资源运算特性可调度潜力评价机制。

为了实现上述发明目的,本发明采用以下技术方案:

基于云资源运算特性可调度潜力评价机制,包括如下步骤:

1)用户通过应用程序向云服务系统发送请求至管理器,并提出服务请求,调度任务信息进行收集、处理,得到目标资源基础数据;

2)根据步骤1)的目标资源基础数据,获取所述目标资源的资源状态评分;

3)根据步骤1)用户目标所涉及到的调度参数,利用高速调度器计算出资源请求,然后根据步骤2)的资源状态评分的数据,得到资源消耗最小策略评分数据;

4)根据用户服务请求的参数,利用虚拟服务器监控资源占有比率,形成资源分配区,利用外网服务器获得外网地址和端口,然后向高速调度器注册,构建出资源分配约束下节点评分模型。

进一步地,所述步骤3)中高速调度器根据任务请求的大小计算出资源请求,并把资源请求发送给资源获取/释放器;根据用户提交的服务请求,赋予不同的调度目标相应的调度参数。

进一步地,所述步骤3)中根据评分模型,获得云数据评估结果,然后根据预调度任务和用户发出的实时调度任务对云边端资源分配进行优化。

作为优选,所述云资源运算通过获取用户的预期要求,所述预期要求包括对所述公有云资源的属性要求。

作为优选,所述步骤3)中根据资源消耗最小策略,构建多资源约束下节点评分模型。

与现有技术相比,本发明的有益效果是:

1)本发明通过调用Scheduler类的schedule方法,可以将指定的任务分配给最先满足条件的资源。另外,为了方便演示,代码也对任务和资源的cpu和memory属性进行了简单定义。

2)本发明将3个jar包分别部署在hadoop集群的每个节点上并重启集群使其生效,能够缩短任务整体响应时间解决了默认调度器缺乏动态性和灵活性的问题。

具体实施方式

下面将更详细地描述本发明的实施例。然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。本领域的技术人员可以在不偏离本发明精神和保护范围的基础上从下述描述得到替代技术方案。

实施例

基于云资源运算特性可调度潜力评价机制,包括如下步骤:

1)用户通过应用程序向云服务系统发送请求至管理器,并提出服务请求,调度任务信息进行收集、处理,得到目标资源基础数据;

2)根据步骤1)的目标资源基础数据,获取所述目标资源的资源状态评分;

3)根据步骤1)用户目标所涉及到的调度参数,利用高速调度器计算出资源请求,然后根据步骤2)的资源状态评分的数据,得到资源消耗最小策略评分数据;高速调度器根据任务请求的大小计算出资源请求,并把资源请求发送给资源获取/释放器;根据用户提交的服务请求,赋予不同的调度目标相应的调度参数。根据评分模型,获得云数据评估结果,然后根据预调度任务和用户发出的实时调度任务对云边端资源分配进行优化。

4)根据用户服务请求的参数,利用虚拟服务器监控资源占有比率,形成资源分配区,利用外网服务器获得外网地址和端口,此外网地址是安全的,端口比较稳定,不会出现掉线的情况。然后向高速调度器注册,每一个用户都会有一个注册码,并设置相应的独立密码。构建出资源分配约束下节点评分模型。云资源运算通过获取用户的预期要求,预期要求包括对所述公有云资源的属性要求。根据资源消耗最小策略,构建多资源约束下节点评分模型。

云资源调度涵盖的问题范围非常广泛,不同的场景和应用会有不同的调度算法和实现。

python

#云资源调度示例代码

#定义一个任务类

classTask:

def__init__(self,name,cpu,memory):

self.name=name#任务名称

self.cpu=cpu#CPU占用量

self.memory=memory#内存占用量

#定义一个资源类

classResource:

def__init__(self,name,cpu,memory):

self.name=name#资源名称

self.cpu=cpu#CPU总量

self.memory=memory#内存总量

self.free_cpu=cpu#剩余CPU

self.free_memory=memory#剩余内存

#定义一个调度器类

classScheduler:

def__init__(self,resources):

self.resources=resources#所有可用资源

self.running_tasks=[]#正在运行的任务

defschedule(self,task):

forresinself.resources:

ifres.free_cpu>=task.cpuandres.free_memory>=

task.memory:

#资源足够,将任务分配给该资源

res.free_cpu-=task.cpu

res.free_memory-=task.memory

self.running_tasks.append(task)

print("将任务{}分配给{}资源".format(task.name,res.name))

return

print("没有可用的资源来运行任务{}".format(task.name))

#创建资源

resource1=Resource("Resource1",10,1024)

resource2=Resource("Resource2",20,2048)

resources=[resource1,resource2]

#创建任务

task1=Task("Task1",5,512)

task2=Task("Task2",15,1024)

task3=Task("Task3",10,2048)

#创建调度器

scheduler=Scheduler(resources)

#调度任务

scheduler.schedule(task1)

scheduler.schedule(task2)

scheduler.schedule(task3)

#打印任务分配结果

print("运行中的任务:")

fortaskinscheduler.running_tasks:

print("{}-CPU:{},Memory:{}".format(task.name,task.cpu,task.memory))

此示例代码定义了一个任务类、资源类和调度器类,使用简单的贪心算法将任务分配给可用的资源。通过调用Scheduler类的schedule方法,可以将指定的任务分配给最先满足条件的资源。另外,为了方便演示,代码也对任务和资源的cpu和memory属性进行了简单定义。

调度对于面向行业的云平台是至关重要的。主要原因在于云平台的终端用户,如电信行业的用户,可以多达几千万甚至上亿,而每个用户每天可以访问多项业务(如音乐、游戏等),这些业务访问反映在云平台内部就是上千万级的任务请求。

本发明中的高速调度器选择Hadoop调度器,将上述代码在eclipse上编译成jar包,分别是hadoop-core.jar,hadoop-mapred.jar,hadoop-hdfs.jar,将3个jar包分别部署在hadoop集群的每个节点上并重启集群使其生效,能够缩短任务整体响应时间解决了默认调度器缺乏动态性和灵活性的问题。

以上所述,仅为本公开的具体实施方式,但本公开实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开实施例揭露的技术范围内或者在本公开实施例揭露的思想下,可轻易想到变化、替换或组合,都应涵盖在本公开实施例的保护范围之内。

相关技术
  • 基于电动汽车用户行为特性的可调度潜力评估方法
  • 一种基于云成熟度的云数据中心资源调度共享方法及系统
技术分类

06120116298068