一种cpu资源调度方法和服务器的制造方法

文档序号:9826150阅读:1018来源:国知局
一种cpu资源调度方法和服务器的制造方法
【技术领域】
[0001]本申请涉及网络技术领域,特别是涉及一种CPU资源调度方法和服务器。
【背景技术】
[0002]随着设备性能的爆炸式的增长,以及虚拟化技术的逐渐普及,如何在已有的物理设备上实现多台虚拟化设备的资源动态分配、灵活调度、提高资源利用率,以满足用户在日常工作中需求迫在眉睫。
[0003]设备虚拟化是指通过虚拟化技术将一台设备虚拟为多台逻辑设备(虚拟设备),即在一台设备上可以同时运行多台虚拟设备,在虚拟化技术中CPU(Central ProcessingUnit,处理器)资源的调度是关键,它决定了哪个VCPU(Virtual Central ProcessingUnit,虚拟处理器,简称虚拟设备)可以获得CPU资源,为了更好的利用CPU资源,调度方案必须有效。
[0004]在现有技术中,为虚拟设备的分配CPU资源的方式分为手动分配和动态实时分配两种,手动分配是技术人员根据自己的经验对CPU资源进行分配,而动态实时分配选用FIFO (First Input First Output,先入先出队列)调度、最短作业优先调度、优先权调度、多级队列等等调度方法对CPU资源进行分配。
[0005]在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
[0006]手动分配会存在部分虚拟设备分配到的CPU资源不足,部分虚拟设备分配的CPU资源过剩,不能合理有效的利用CPU资源,而动态实时分配的调度算法相对单一,使CPU资源的有效利用率降低。

【发明内容】

[0007]本申请提出一种CPU调度方法,通过动态为虚拟设备分配CPU资源,以使所述虚拟设备能够对待处理的任务进行处理,本申请能够有效利用空闲的CPU资源,提高了 CPU资源的利用率。
[0008]一种CPU调度方法,服务器中包括多个虚拟设备,所述方法包括:
[0009]服务器确定虚拟设备待处理的任务所需占用的CPU资源量和为所述虚拟设备分配的CPU资源中未被占用的CPU资源量;
[0010]所述服务器对所述任务所需占用的CPU资源量与所述未被占用的CPU资源量进行比较;
[0011]当所述任务所需占用的CPU资源量大于所述未被占用的CPU资源量时,所述服务器判断所述任务所需占用的CPU资源量与为所述虚拟设备分配的CPU资源中已被占用的CPU资源量之和是否大于为所述虚拟设备设定的最大CPU资源占有量;
[0012]如果所述任务所需占用的CPU资源量与为所述虚拟设备分配的CPU资源中已被占用的CPU资源量之和不大于为所述虚拟设备设定的最大CPU资源占有量,所述服务器调度CPU资源分配给所述虚拟设备,以使所述虚拟设备对所述任务进行处理。
[0013]—种服务器,所述服务器中包括多个虚拟设备,所述服务器包括:
[0014]确定模块,用于确定虚拟设备待处理的任务所需占用的CPU资源量和为所述虚拟设备分配的CPU资源中未被占用的CPU资源量;
[0015]比较模块,用于对所述任务所需占用的CPU资源量与所述未被占用的CPU资源量进行比较;
[0016]判断模块,用于当所述任务所需占用的CPU资源量大于所述未被占用的CPU资源量时,判断所述任务所需占用的CPU资源量与为所述虚拟设备分配的CPU资源中已被占用的CPU资源量之和是否大于为所述虚拟设备设定的最大CPU资源占有量;
[0017]分配模块,用于如果所述任务所需占用的CPU资源量与为所述虚拟设备分配的CPU资源中已被占用的CPU资源量之和不大于为所述虚拟设备设定的最大CPU资源占有量,调度CPU资源分配给所述虚拟设备,以使所述虚拟设备对所述任务进行处理。
[0018]本申请中通过比较任务所需占用的CPU资源量和为所述虚拟设备分配的CPU资源中当前未被占用的CPU资源量,实现了为虚拟设备动态分配CPU资源,以达到利用空闲CPU资源、提高CPU资源利用率的目的。
【附图说明】
[0019]为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要占用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本申请实施例中的一种CPU资源调度方法流程图;
[0021]图2为本申请实施例中一种服务器的结构示意图。
【具体实施方式】
[0022]下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的其他实施例,都属于本申请保护的范围。
[0023]如图1所示,为本申请实施例中的一种CPU调度方法流程图,所述服务器中包括多个虚拟设备,该方法包括以下步骤:
[0024]步骤101,服务器确定虚拟设备待处理的任务所需占用的CPU资源量和为所述虚拟设备分配的CPU资源中未被占用的CPU资源量(后续简称未被占用的CPU资源量)。
[0025]步骤102,所述服务器对所述任务所需占用的CPU资源量与所述未被占用的CPU资源量进行比较。
[0026]当所述任务所需占用的CPU资源量大于所述未被占用的CPU资源量时,执行步骤103,当所述任务所需占用的CPU资源量不大于所述未被占用的CPU资源量时,所述虚拟设备直接对所述任务进行处理。
[0027]步骤103,所述服务器判断所述任务所需占用的CPU资源量与为所述虚拟设备分配的CPU资源中已被占用的CPU资源量(后续简称已被占用的CPU资源量)之和是否大于为所述虚拟设备设定的最大CPU资源占有量。
[0028]如果所述任务所需占用的CPU资源量与为所述已被占用的CPU资源量之和不大于为所述虚拟设备设定的最大CPU资源占有量,执行步骤104 ;如果所述任务所需占用的CPU资源量与所已被占用的CPU资源量之和大于为所述虚拟设备设定的最大CPU资源占有量,所述虚拟设备丢弃所述任务。
[0029]为保证服务器包括的多个虚拟设备都能分配到CPU资源,每个虚拟设备设置有最大CPU资源占有量,以防止将所有CPU资源都分配给一个虚拟设备。因此,虚拟设备占用的CPU资源量不能超过设定的最大CPU资源占有量,即所述任务所需占用的CPU资源量与所述已被占用的CPU资源量之和不能大于最大CPU资源占有量,如果大于则表示不能对所述任务进行处理;如果不大于则表示所述可以对所述任务进行处理。
[0030]步骤104,所述服务器调度CPU资源分配给所述虚拟设备,以使所述虚拟设备对所述任务进行处理。
[0031]所述服务器调度CPU资源分配给所述虚拟设备,以使所述虚拟设备对所述任务进行处理,包括:
[0032]当所述服务器确定CPU资源中存在未被分配的CPU资源时,所述服务器判断CPU资源中未被分配的CPU资源量(后续简称未被分配的CPU资源量)与所述未被占用的CPU资源量之和是否小于所述任务所需占用的CPU资源量。
[0033]如果所述未被分配的CPU资源量与所述未被占用的CPU资源量之和不小于所述任务所需占用的CPU资源量,则执行步骤A ;如果所述未被分配的CPU资源量与所述未被占用的CPU资源量之和小于所述任务所需占用的CPU资源量,则执行步骤B。
[0034]如果未被分配的CPU资源量与所述未被占用的CPU资源量之和不小于所述任务所需占用的CP
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1