一种集群系统中CPU的分配方法和装置与流程

文档序号:11199072阅读:1138来源:国知局
一种集群系统中CPU的分配方法和装置与流程

本发明涉网络空间连接领域,特别涉及一种集群系统中cpu的分配方法,还涉及到一种集群系统中cpu的分配装置。



背景技术:

随着操作系统虚拟化技术日益成熟,虚拟化系统允许多个操作系统并发运行在同一台物理机上,使用相同的硬件,且彼此互补影响。多个虚拟机可以组成集群,集群系统以其低廉的成本、强大的运算能力和健壮的容错机制逐渐成为计算机行业的焦点。

虚拟机通常需要利用对应的物理机的物理cpu实现i/o操作及计算操作,虚拟机的物理cpu资源是共享的,其中,物理cpu在实现计算操作时所需的时间较长,计算i/o操作时则仅需消耗非常短的时间,但是,为了保证物理cpu设置的时间片长度能够同时适用于上述两种情况,通常会按照计算操作所需时间来设置物理cpu的时间片长度,这就导致物理cpu在完成i/o操作时分配给该操作的时间片长度远大于该操作所需的时间,因此导致时间浪费,进而影响了虚拟机性能,且使得资源利用率较低。

综上所述,如何有效地调度集群系统中的物理cpu,进而增强虚拟机性能,提高资源利用率,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种集群系统中cpu的分配方法,能够实现对物理cpu的有效调度,进而增强虚拟机性能,提高资源利用率。本发明的另一目的是提供一种集群系统中cpu的分配装置,具有与对应方法相同的有益效果。

为解决上述技术问题,本发明提供了以下技术方案:

一种集群系统中cpu的分配方法,包括:

获取每个虚拟机运行时的i/o请求次数、cpu使用率;

将每个所述虚拟机的所述i/o请求次数分别和阈值1进行对比、所述cpu使用率分别和阈值2进行对比,若所述i/o请求次数大于阈值1、所述cpu使用率小于阈值2,则确定对应的所述虚拟机为延时敏感型虚拟机;若所述i/o请求次数小于阈值1、所述cpu使用率大于阈值2,则确定对应的所述虚拟机为非延时敏感型虚拟机;

将所述延时敏感型虚拟机与第一物理cpu绑定、所述非延时敏感型虚拟机与第二物理cpu绑定,其中,所述第一物理cpu的时间片长度小于所述第二物理cpu的时间片长度。

优选的,将每个所述虚拟机的所述i/o请求次数分别和阈值1进行对比、所述cpu使用率分别和阈值2进行对比之后,还包括:

若将所述i/o请求次数与阈值1进行对比、所述cpu使用率和阈值2进行对比得到的结果不符合所述i/o请求次数大于阈值1的同时所述cpu使用率小于阈值2的情况和所述i/o请求次数小于阈值1的同时所述cpu使用率大于阈值2的情况,则确定对应的所述虚拟机为混合虚拟机,将所述混合虚拟机包含的多个虚拟机cpu分为第一虚拟机cpu和第二虚拟机cpu,并将所述第一虚拟机cpu绑定在所述第一物理cpu上、所述第二虚拟机cpu绑定在所述第二物理cpu上。

优选的,还包括:

记录全部所述虚拟机包含的虚拟机cpu当前时刻之前预设时间段内的负载量。

优选的,记录所述虚拟机cpu的负载量之后,还包括:

根据记录的所述虚拟机cpu的负载量,使用线性预测算法对所述虚拟机cpu当前时刻之后的预设时间段的负载情况进行预测,并得出预测结果。

优选的,得出所述预测结果之后,还包括:

根据所述预测结果得出物理cpu需分配的所述第一物理cpu个数和所述第二物理cpu个数。

一种集群系统中cpu的分配装置,包括:

获取模块:用于获取每个虚拟机运行时的i/o请求次数、cpu使用率;

对比模块:用于将每个所述虚拟机的所述i/o请求次数分别和阈值1进行对比、所述cpu使用率分别和阈值2进行对比,若所述i/o请求次数大于阈值1、所述cpu使用率小于阈值2,则确定对应的所述虚拟机为延时敏感型虚拟机;若所述i/o请求次数小于阈值1、所述cpu使用率大于阈值2,则确定对应的所述虚拟机为非延时敏感型虚拟机;

绑定模块:用于将所述延时敏感型虚拟机与第一物理cpu绑定、所述非延时敏感型虚拟机与第二物理cpu绑定,其中,所述第一物理cpu的时间片长度小于所述第二物理cpu的时间片长度。

优选的,还包括:

适调模块:用于若将所述i/o请求次数与阈值1进行对比、所述cpu使用率和阈值2进行对比得到的结果不符合所述i/o请求次数大于阈值1的同时所述cpu使用率小于阈值2的情况和所述i/o请求次数小于阈值1的同时所述cpu使用率大于阈值2的情况,则确定对应的所述虚拟机为混合虚拟机,将所述混合虚拟机包含的多个虚拟机cpu分为第一虚拟机cpu和第二虚拟机cpu,并将所述第一虚拟机cpu绑定在所述第一物理cpu上、所述第二虚拟机cpu绑定在所述第二物理cpu上。

优选的,还包括:

记录模块:用于记录全部所述虚拟机包含的虚拟机cpu当前时刻之前预设时间段内的负载量。

优选的,还包括:

预测模块:用于记录所述虚拟机cpu的负载量之后,根据记录的所述虚拟机cpu的负载量,使用线性预测算法对所述虚拟机cpu当前时刻之后的预设时间段的负载情况进行预测,并得出预测结果。

优选的,还包括:

分配模块:用于得出所述预测结果之后,根据所述预测结果得出物理cpu需分配的所述第一物理cpu个数和所述第二物理cpu个数。

相比于现有技术,本发明获取每个虚拟机运行时的i/o请求次数、cpu使用率;将每个所述虚拟机的所述i/o请求次数分别和阈值1进行对比、所述cpu使用率分别和阈值2进行对比,若所述i/o请求次数大于阈值1、所述cpu使用率小于阈值2,则确定对应的所述虚拟机为延时敏感型虚拟机;若所述i/o请求次数小于阈值1、所述cpu使用率大于阈值2,则确定对应的所述虚拟机为非延时敏感型虚拟机;将所述延时敏感型虚拟机与第一物理cpu绑定、所述非延时敏感型虚拟机与第二物理cpu绑定,其中,所述第一物理cpu的时间片长度小于所述第二物理cpu的时间片长度。本申请公开的技术方案中,通过i/o请求次数与阈值1、cpu使用率与阈值2的对比,确定出i/o请求次数对应i/o操作较多的延时敏感型虚拟机及计算操作较多的非延时敏感型虚拟机,进而根据i/o操作所需时间片长度比计算操作所需时间片长度短的原则,分别为延时敏感型虚拟机及非延时敏感型虚拟机绑定对应时间长度的物理cpu,实现根据虚拟机现实操作的特点来分配对应时间片长度的物理cpu,从而尽可能减少物理cpu在实现对应操作时的时间浪费,提高物理cpu的使用效率,从而实现对物理cpu的有效调度,增强虚拟机性能,提高资源利用率。

同样地,本发明提供的装置,能够具体地将本发明的方法实施,能够起到与该种方法同样的作用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种集群系统中cpu的分配方法的流程图;

图2为本发明实施例提供的一种集群系统中cpu的分配装置的实施例一结构示意图;

图3为本发明实施例提供的一种集群系统中cpu的分配装置的实施例二结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明的方案,下面结合具体实施方式对本发明作进一步地详细说明。

参考说明书附图1本发明实施例提供的一种集群系统中cpu的分配方法的流程图,包括:

步骤s01:获取每个虚拟机运行时的i/o请求次数、cpu使用率。

系统中的cpu包括虚拟机cpu和物理cpu,cpu使用率根据i/o操作及计算操作得到,具体来说,cpu使用率是指虚拟机对应物理cpu的使用率,可以为物理cpu当前使用的资源与其具有全部资源的比值,当cpu使用率较高时,说明对应物理cpu进行的计算操作较多,反之,则说明对应物理cpu进行的计算操作较少。由此,通过获取每个虚拟机运行时的i/o请求次数、cpu使用率,可以具体的分析到对应虚拟机的运行状态,方便以后进一步地分配工作。

步骤s02:将每个虚拟机的i/o请求次数分别和阈值1进行对比、cpu使用率分别和阈值2进行对比,若i/o请求次数大于阈值1、cpu使用率小于阈值2,则确定对应的虚拟机为延时敏感型虚拟机;若i/o请求次数小于阈值1、cpu使用率大于阈值2,则确定对应的虚拟机为非延时敏感型虚拟机。

其中,阈值1、阈值2可以是操作人员根据实际需求来设定的。通过i/o请求次数与阈值1的对比,若i/o请求次数大于阈值1,表示该虚拟机的i/o请求次数较多,也即需要对应物理cpu实现的i/o操作较多,此时若cpu使用率与阈值2对比结果为cpu使用率小于阈值2,cpu使用率较低,也即计算操作较少,则确定出cpu使用率大部分为i/o请求对应i/o操作占用,将该虚拟机定义为延时敏感型虚拟机。若i/o请求次数与阈值1的对比结果为i/o请求次数小于阈值1,即需要对应物理cpu实现的i/o操作较少,此时若该cpu使用率与阈值2的对比结果为cpu使用率大于阈值2,cpu使用率较高,也即计算操作较多,则确定出cpu使用率大部分为计算操作占用,将该类型的虚拟机定义为非延时敏感型虚拟机。通过该种方法将虚拟机进一步作出分类,为后续工作做基础。

步骤s03:将延时敏感型虚拟机与第一物理cpu绑定、非延时敏感型虚拟机与第二物理cpu绑定,其中,第一物理cpu的时间片长度小于第二物理cpu的时间片长度。

由于虚拟机响应i/o请求时,所需消耗物理cpu的时间非常短,而计算操作所需消耗的物理cpu时间较长,为了避免物理cpu处理i/o请求对应i/o操作时所需时间较少、而分配时间较长、增加物理cpu的浪费的现象,对不同类型虚拟机对应的物理cpu的调度策略进行调整:延时敏感型虚拟机绑定的第一物理cpu设置的时间片长度可以为略大于一次i/o请求对应i/o操作的时间长度,当该虚拟机运行过程中出现计算请求、需响应计算请求时,物理cpu通过使用多个时间片的方式进行完成对应计算操作;非延时敏感型虚拟机绑定的第二物理cpu设置的时间片长度为略大于一次计算操作的时间长度。

本申请公开的技术方案中,通过i/o请求次数与阈值1、cpu使用率与阈值2的对比,确定出i/o请求次数对应i/o操作较多的延时敏感型虚拟机及计算操作较多的非延时敏感型虚拟机,进而根据i/o操作所需时间片长度比计算操作所需时间片长度短的原则,分别为延时敏感型虚拟机及非延时敏感型虚拟机绑定对应时间长度的物理cpu,实现根据虚拟机现实操作的特点来分配对应时间片长度的物理cpu,从而尽可能减少物理cpu在实现对应操作时的时间浪费,提高物理cpu的使用效率,从而实现对物理cpu的有效调度,增强虚拟机性能,提高资源利用率。

本发明实施例提供的一种集成系统中cpu的分配方法中,将每个虚拟机的i/o请求次数分别和阈值1进行对比、cpu使用率分别和阈值2进行对比之后,还可以包括:

若将i/o请求次数与阈值1进行对比、cpu使用率和阈值2进行对比得到的结果不符合i/o请求次数大于阈值1的同时cpu使用率小于阈值2的情况和i/o请求次数小于阈值1的同时cpu使用率大于阈值2的情况,则确定对应的虚拟机为混合虚拟机,将混合虚拟机包含的多个虚拟机cpu分为第一虚拟机cpu和第二虚拟机cpu,并将第一虚拟机cpu绑定在第一物理cpu上、第二虚拟机cpu绑定在第二物理cpu上。

在通过i/o请求次数与阈值1、cpu使用率与阈值2的对比的方式,对虚拟机进行分类后,由于在实际操作中,会出现不符合i/o请求次数大于阈值1的同时cpu使用率小于阈值2、i/o请求次数小于阈值1的同时cpu使用率大于阈值2的情况,对出现的这种情况进一步解释说明,将该种情况下的虚拟机命名为混合虚拟机。混合虚拟机中一般可以包含有多个虚拟机cpu,由于无法通过对整体cpu使用率和i/o请求次数的分析对单个虚拟机cpu做出细致的分析和绑定,由此可以按照工作人员根据实际需要设定的原则,将其多个虚拟机cpu进行自定义划分,分为第一虚拟机cpu和第二虚拟机cpu,其中设定的原则可以为平均划分等。第一虚拟机cpu绑定在第一物理cpu上,指定处理虚拟机i/o请求;第二虚拟机cpu绑定在第二物理cpu上,指定处理虚拟机的计算请求。特殊地,若该混合虚拟机只包含一台虚拟机cpu,则采用现有技术进行绑定物理cpu即可,本发明对其不做改变。通过上述技术方案,对于无法区分是i/o请求较多还是计算请求较多的虚拟机,将其包含的多个虚拟机cpu进行工作划分,也即一部分虚拟机cpu用于处理i/o请求,另一部分虚拟机cpu用于处理计算请求,进而将处理i/o请求的虚拟机cpu与时间片长度符合i/o请求对应i/o操作的所需时间特点的第一物理cpu绑定,将处理计算请求的虚拟机cpu与时间片长度符合计算请求对应计算操作的所需时间特点的第二物理cpu绑定,从而将分工明确的不同虚拟机cpu均与与自身处理的请求具有对应时间片长度的物理cpu绑定,进一步减少了物理cpu在实现对应操作时的时间浪费,提高物理cpu的使用效率。

本发明实施例提供的一种集成系统中cpu的分配方法中还可以包括:

记录全部虚拟机包含的虚拟机cpu当前时刻之前预设时间段内的负载量。

虚拟机cpu的负载量可以包括i/o请求和操作请求,当然还可以根据实际需要包含其他指标,本申请中以负载量指i/o请求和计算请求为例进行说明,在虚拟机的运行过程中i/o请求的数量和操作请求的数量会不断的发生变化,通过把虚拟机cpu当前时刻之前预设时间段内的负载量记录下来,能够供获取进而基于这些负载量的数据实现对虚拟机的运行分析,方便工作人员基于记录的这些负载量的数据对虚拟机cpu进行检查、修复等工作。其中,预设时间段可以由工作人员根据实际需要自行设定。

本发明实施例提供的一种集成系统cpu的分配方法中,在记录虚拟机cpu的负载量之后,还可以包括:

根据记录的虚拟机cpu的负载量,使用线性预测算法对虚拟机cpu当前时刻之后的预设时间段的负载情况进行预测,并得出预测结果。

当前时刻之前的预设时间段和当前时刻之后的预设时间段可以相同,也可以不同,具体可以根据实际需要进行设定。虚拟机cpu在实际运行中,由于实际情况i/o请求的数量和操作请求的数量会不断的发生变化,即使在当前时刻之前定义为延时敏感型虚拟机,其对应计算操作也可能会随时间的改变而逐渐增多,而在i/o请求次数大于阈值1和cpu使用率仍小于阈值2的情况下,并不能对虚拟机的运行情况状况很清楚的呈现出来,由此需在虚拟机cpu运行过程中,将其负载量记录下来。通过记录下来的负载量的数据,采用线性预测算法,即通过对当前时刻之前预设时间段内的i/o请求次数和cpu使用率进行线性分析,并基于该分析对当前时刻之后的预设时间段内负载情况进行预测。例如,在当前时刻之前预设时间段内,延时敏感型虚拟机包含的全部虚拟机cpu的负载量为(x1,x2,...xn),非延时敏感型虚拟机包含的全部虚拟机cpu的负载量为(y1,y2,...yn),则虚拟机cpu在当前时刻之后的预设时间段内敏感型的延时敏感型虚拟机包含的全部虚拟机cpu可以预估为xn+1=β1x1+β2x2+...+βnxn+ε,非延时敏感型虚拟机的全部虚拟机cpu负载量为yn+1=β1y1+β2y2+...+βnyn+ε,此处当前时刻之后的预设时间段具体指n+1时刻,而β1至βn为预先根据实际需要设定或者按照其他方式设定的各负载量对应的权重值,ε为根据实际需要预先设定或者按照其他方式设定的值。

本申请公开的上述技术方案中,通过分析记录下来的负载量的数据,切实地预测当前时刻之后预设时间段之内虚拟机cpu的负载量,方便工作人员在了解虚拟机cpu当前时刻之后预设时间段之内虚拟机cpu的负载量的情况下进行对应的操作虚拟机以维护虚拟机的正常运行等工作。同时,通过预测结果,也可以大体明确虚拟机当前时刻之后预设时间段之内的运行状态,减少因潜在故障隐患导致虚拟机cpu的运行时间延长的现象。

另外,还可以是获取到虚拟机cpu当前时刻之前预设时间段的负载量之后以时间为横坐标、以负载量为其他方向坐标画出对应的时域负载曲线,进而在该曲线上获取当前时刻之后预设时间段内的负载量,实现未来负载量的预测等,均在本发明的保护范围之内。

本发明实施例提供的一种集成系统cpu的分配方法中,在得出预测结果之后,还可以包括:

根据预测结果得出物理cpu需分配的第一物理cpu个数和第二物理cpu个数。

通过分析虚拟机cpu的负载量,采用线性预测算法,对虚拟机cpu当前时刻之后的预设时间段的负载情况进行预测,由预测结果合理分配第一物理cpu和第二物理cpu的个数,如:第一物理cpu的个数为spcpus,第二物理cpu的个数为nspcpus,全部物理cpu的个数记为pcpus。延时敏感型虚拟机包含的全部虚拟机cpu的负载量为(x1,x2,...xn),非延时敏感型虚拟机包含的全部虚拟机cpu的负载量为(y1,y2,...yn)。则虚拟机cpu在当前时刻之后的预设时间段内敏感型的延时敏感型虚拟机包含的全部虚拟机cpu可以预估为xn+1=β1x1+β2x2+...+βnxn+ε,非延时敏感型虚拟机的全部虚拟机cpu负载量为yn+1=β1y1+β2y2+...+βnyn+ε,此处当前时刻之后的预设时间段具体指n+1时刻,而β1至βn为预先根据实际需要设定或者按照其他方式设定的各负载量对应的权重值,ε为根据实际需要预先设定或者按照其他方式设定的值,则得出:

spcpus的个数为:

nspcpus的个数为:

通过以上的方式,根据虚拟机cpu当前时刻之前预设时间段内的实际的负载量,计算出该虚拟机在当前时刻之后的预设时间段内需匹配的各类物理cpu的个数,定时对虚拟机需要匹配的物理cpu做出分析,有利于清楚掌握虚拟机的运行状态,然后根据该预测结果对当前虚拟机调整对应绑定的物理cpu:混合虚拟机调整第一物理cpu和第二物理cpu的个数,当前时间之前的延时敏感型虚拟机、非延时敏感型虚拟机进行重新定义并重新绑定对应的物理cpu,调整完成后被绑定的第一物理cpu个数肯定不大于分配的第一物理cpu个数,被绑定的第二物理cpu个数肯定不大于分配的第二物理cpu个数。这样,对虚拟机匹配物理cpu的类型、个数进行调整,避免虚拟机在工作过程中实际的负载量发生改变、绑定的物理cpu的运行策略不匹配,出现物理cpu浪费的现象,从而减少物理cpu在实现对应操作时的时间浪费,提高物理cpu的使用效率。

本发明cpu的分配实施例一对应的分配装置,参考说明书附图2,其中,获取模块m1:用于获取虚拟机运行时的i/o请求次数、cpu使用率;对比模块m2:用于将每个虚拟机的i/o请求次数分别和阈值1进行对比、cpu使用率分别和阈值2进行对比,若i/o请求次数大于阈值1、cpu使用率小于阈值2,则确定对应的虚拟机为延时敏感型虚拟机;若i/o请求次数小于阈值1、cpu使用率大于阈值2,则确定对应的虚拟机为非延时敏感型虚拟机;绑定模块m3:用于将延时敏感型虚拟机与第一物理cpu绑定、非延时敏感型虚拟机与第二物理cpu绑定,其中,第一物理cpu的时间片长度小于第二物理cpu的时间片长度。

本发明实施例提供的一种集成系统中cpu的分配装置中,还可以包括:适调模块,用于若将i/o请求次数与阈值1进行对比、cpu使用率和阈值2进行对比得到的结果不符合i/o请求次数大于阈值1的同时cpu使用率小于阈值2的情况和i/o请求次数小于阈值1的同时cpu使用率大于阈值2的情况,则确定对应的虚拟机为混合虚拟机,将混合虚拟机包含的多个虚拟机cpu分为第一虚拟机cpu和第二虚拟机cpu,并将第一虚拟机cpu绑定在第一物理cpu上、第二虚拟机cpu绑定在第二物理cpu上。

本发明实施例提供的一种集成系统中cpu的分配装置中,还可以包括:

记录模块:用于记录全部虚拟机包含的虚拟机cpu当前时刻之前预设时间段内的负载量。

本发明实施例提供的一种集成系统中cpu的分配装置中,还可以包括:

预测模块:用于记录虚拟机cpu的负载量之后,根据记录的虚拟机cpu的负载量,使用线性预测算法对虚拟机cpu当前时刻之后的预设时间段的负载情况进行预测,并得出预测结果。

本发明实施例提供的一种集成系统中cpu的分配装置中,还可以包括:

分配模块:用于得出预测结果之后,根据预测结果得出物理cpu需分配的第一物理cpu个数和第二物理cpu个数。

参见说明书附图3本发明集群系统中cpu的分配装置的实施例二结构示意图,其中包括:获取模块m1、对比模块m2、绑定模块m3、适调模块m4、记录模块m5、预测模块m6和分配模块m7。

本发明实施例提供的一种装置中相关部分的说明参见本发明实施例提供的一种集群系统中cpu的分配方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

以上对本发明所提供的一种集群系统中cpu的分配方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1