一种节点资源的超售方法及装置与流程
未命名
09-22
阅读:96
评论:0
1.本技术涉及云计算技术领域,具体涉及一种节点资源的超售方法及装置。
背景技术:
2.在云计算集群中,节点中的任务是根据资源的请求来调度的,节点会给每个调度任务预留一部分资源,但是任务的实际资源利用率与预留资源往往是不对等的,甚至存在较大差距,这种差距会导致集群资源的利用率很低,使得很多任务被限制处理,因此在保证集群任务稳定性的前提下,合理超售集群资源是很重要的。
3.现有的解决方案一般是从任务角度考虑,根据节点历史指标创建任务画像,然后来压缩用户对于任务的资源请求,是一种机械性的扩展资源的方式,这种方式没有考虑到节点的状态变化,不能根据节点的不同灵活的超售资源,并不能有效地解决资源利用率差的问题。
技术实现要素:
4.有鉴于此,本技术提供了一种节点资源的超售方法及装置,用于解决现有的解决方式没有考虑到节点的状态变化,不能根据节点的不同灵活的超售资源,并不能有效地解决资源利用率差的问题。
5.为实现以上目的,现提出的方案如下:
6.第一方面,一种节点资源的超售方法,包括:
7.响应于节点资源超售指令,确定目标节点的资源峰值使用量;
8.根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;
9.获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
10.获取更新状态后目标节点的目标资源利用率;
11.通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
12.优选地,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:
13.响应于节点资源超售指令,获取所述目标节点在当前时刻之前的第一预设时间段内的cpu利用率、内存利用率和任务负载;
14.基于所述任务负载,设置与所述cpu利用率对应的第一权重系数以及与所述内存利用率对应的第二权重系数;
15.将所述cpu利用率与所述第一权重系数相乘,得到第一资源使用量;
16.将所述内存利用率与所述第二权重系数相乘,得到第二资源使用量;
17.将所述第一资源使用量与所述第二资源使用量相加,得到所述目标节点的资源峰值使用量。
18.优选地,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:
19.响应于节点资源超售指令,获取所述目标节点中每个任务的资源使用百分比;
20.计算所有任务的资源使用百分比的总和,得到第一资源使用百分比;
21.选取所述目标资源使用百分比中与第一预设百分位对应的第二资源使用百分比;
22.将所述第二资源使用百分比转化为所述目标节点的资源峰值使用量。
23.优选地,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:
24.响应于节点资源超售指令,获取所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量;
25.根据所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量计算目标均值和目标方差;
26.基于所述目标均值和目标方差进行正态分布计算,得到所述目标节点的资源峰值使用量。
27.优选地,所述根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数,包括:
28.获取所述目标节点的资源请求量;
29.将所述资源请求量除以所述资源峰值使用量,得到与所述目标节点对应的资源超售系数。
30.优选地,所述通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售,包括:
31.获取所述目标节点的固定内存上限值;
32.基于所述固定内存上限值确定第一阈值;
33.分别将所述目标资源利用率与所述第一阈值以及预设的第二阈值进行比较;
34.若所述目标资源利用率不小于所述第二阈值,且小于所述第一阈值,则当前时刻停止对所述目标节点的任务调度,以实现节点资源的超售;
35.若所述目标资源利用率不小于所述第一阈值,则对所述目标节点中的任务进行驱逐,以实现节点资源的超售。
36.优选地,所述若所述目标资源利用率不小于所述第一阈值,则对所述目标节点中的任务进行驱逐,以实现节点资源的超售,包括:
37.若所述目标资源利用率不小于所述第一阈值,则根据所述目标资源利用率以及第一阈值确定驱逐数量;
38.获取所述目标节点中每个任务所标记的标签;
39.将标记有可驱逐标签的任务作为各个第一目标任务,若所述第一目标任务的数量不小于所述驱逐数量,则从各个所述第一目标任务中选取驱逐数量的任务进行驱逐。
40.优选地,还包括:
41.若所述第一目标任务的数量小于所述驱逐数量,则将所述驱逐数量减去所述第一目标任务的数量,得到第二数量;
42.获取所述目标节点中除第一目标任务外其他各个任务的调度优先级;
43.将调度优先级小于最高预设优先级的各个任务作为各个第二目标任务;
44.判断所述第二目标任务的数量是否不小于所述第二数量;
45.若是,则按照调度优先级的高低顺序,从各个所述第二目标任务中选取第二数量的任务作为第三目标任务;
46.将各个第一目标任务和第三目标任务进行驱逐。
47.优选地,还包括:
48.若所述第二目标任务的数量小于所述第二数量,则将驱逐数量减去所述第一目标任务以及第二目标任务的数量,得到第三数量,并将最高预设优先级对应的各个任务作为各个第四目标任务;
49.针对每一个第四目标任务,确定该第四目标任务的预留资源量以及实际资源使用量;
50.将所述预留资源量除以所述实际资源使用量,得到第一比值;
51.获取该第四目标任务的创建时间;
52.基于所述第一比值以及创建时间确定该第四目标任务的运行优先级;
53.根据各个第四目标任务的运行优先级,从各个所述第四目标任务中选取第三数量的任务作为第五目标任务;
54.将各个第一目标任务、第三目标任务和第五目标任务进行驱逐。
55.第二方面,一种节点资源的超售装置,包括:
56.响应模块,用于响应于节点资源超售指令,确定目标节点的资源峰值使用量;
57.计算模块,用于根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;
58.修改模块,用于获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
59.目标资源利用率获取模块,用于获取更新状态后目标节点的目标资源利用率;
60.任务调整模块,用于通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
61.从上述技术方案可以看出,本技术通过响应于节点资源超售指令,确定目标节点的资源峰值使用量;根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;获取更新状态后目标节点的目标资源利用率;通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。该方案根据目标节点自身的资源峰值使用量计算出资源超售系数,并修改总预留资源量,以此更新节点状态,并根据更新状态后的目标资源利用率进行任务调整,从而灵活地实现节点资源的超售目的,真正有效的解决了资源利用率差的问题。
附图说明
62.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
63.图1为本技术实施例提供的一种应用场景示意图;
64.图2为本技术实施例提供的一种节点资源的超售方法的可选流程图;
65.图3为本技术实施例提供的一种任务驱逐流程示意图;
66.图4为本技术实施例提供的一种服务器与节点的关系示意图;
67.图5为本技术实施例提供的一种节点资源的超售装置的结构示意图;
68.图6为本技术实施例提供的一种节点资源的超售设备的结构示意图。
具体实施方式
69.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
70.在云计算集群(kubernetes)中,节点中的任务是根据资源的请求来调度的,节点会给每个调度任务预留一部分资源,但是任务的实际资源利用率与预留资源往往是不对等的,甚至存在较大差距,这种差距会导致集群资源的利用率很低,使得很多任务被限制处理,因此在保证集群任务稳定性的前提下,合理超售集群资源是很重要的。
71.现有的解决方案中,一般是从任务角度考虑,根据节点历史指标创建任务画像,然后来压缩用户对于任务的资源请求,是一种机械性的扩展资源的方式,不过,节点中离线的任务没有明显的潮汐规律,对时延没有很高的服务等级要求,同时云计算集群上的任务种类多样,需要大量的专业领域知识才能为所有任务定制合适的资源,这并不适合大规模的负载计算,没有考虑到节点的状态变化,不能根据节点的不同灵活的超售资源,并不能有效地解决资源利用率差的问题。
72.还有一种方法是将用于超售的资源视为具有动态容量的扩展资源,完全或部分使用超售的任务将被实物尽力而为的任务,没有严格的性能保障,而且这样的方式需要区分不同任务应该使用的资源类型,例如原生资源类型或扩展资源类型等,以及这些资源的分配比例,不方便向用户推广;同时,扩展资源需要在调度器中实现一些复杂的策略,比如节点评分逻辑复杂,对其他组件的影响较大,而最后调度的任务规格也会低于用户预期的真实请求,另外还有一些额外的扩展资源字段,都可能会让用户感到困惑。因此扩展资源更适合不同优先级任务的“混合部署”,不适合不区分任务类型的资源超售。
73.为了解决上述现有技术的缺陷,本发明实施例提供了一种节点资源的超售方法,该方法可以应用在各种计算机终端或是智能终端中,其执行主体可以为计算机终端或是智能终端的处理器或服务器,该方案的一个应用场景可以如图1所示,请参考图1:
74.在该应用场景中,包括api服务器(api-server),api服务器中包含自定义指标服务器(custom metrics server),还包括超售控制器、节点、调度器和webhook(消息钩子)。
75.具体地,自定义指标服务器可以监控所有节点的节点状态和资源利用率,当响应于节点资源超售指令,获取目标节点的资源峰值使用量,超售控制器可以从自定义指标服务器所存在的api服务器中提取到该资源峰值使用量,根据该资源峰值使用量计算出资源超售系数,将超售系数拼接到目标节点的注解上,提供优化的资源视图,以取得平衡,超售控制器还可以从自定义指标服务器中获取目标节点的规格,即其内部所有任务的总预留资
源量,此时消息钩子会基于超售系数修改总预留资源量,并利用修改后的总预留资源量更新目标节点的当前状态,此过程可以认为是扩大了目标节点的可预留资源量,然后修改后的节点状态会更新至api服务器中;自定义指标服务器再获取更新状态后目标节点的目标资源利用率,超售控制器根据目标资源利用率对目标节点进行任务调整,从而实现节点资源的超售。
76.具体地,可以通过调度器对目标节点停止调度、或者通过qos(quality of service)代理组件对部分节点pod进行驱逐。每个qos代理组件都驻留在其对应节点中,根据实际的pod资源使用以及系统负载来管理pod。
77.具体地,所述方法的方法流程图如图2所示,具体包括:
78.s1:响应于节点资源超售指令,确定目标节点的资源峰值使用量。
79.具体地,结合上述应用场景,自定义指标服务器实现于聚合层中,其在聚合层中与api服务器在相同的进程内运行,资源请求信息会发送至自定义指标服务器中,自定义指标服务器可以定期或者实时的监控目标节点的节点状态,获取目标节点的资源峰值使用量。
80.s2:根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数。
81.通过目标节点的资源峰值使用量计算出对应的资源超售系数,以此来进行资源超售,即扩大目标节点的容量。
82.s3:获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态。
83.消息钩子可以利用超售系数扩大目标节点的容量,同时保持预留的资源量不变。从资源量的角度来说,保持原本的初始预留资源量,再扩大一些资源量,即获取目标节点中所有任务的总预留资源量,根据超售系数扩大总预留资源量,由于节点向api服务器发送心跳状态表示自身当前的工作情况,因此消息钩子可以利用修改后的总预留资源量对目标节点的节点状态进行更新。
84.s4:获取更新状态后目标节点的目标资源利用率。
85.自定义指标服务器可以实时监控目标节点的真实峰值利用率和节点状态,因此获取更新状态后目标节点的当前资源利用率,即目标资源利用率即可进行后续操作。
86.s5:通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
87.可选的,本步骤中,一种任务调整的方式可以如图3所示,根据目标资源利用率发现当前目标节点已经发生过载,则利用qos代理组件向api服务器发送驱逐请求,由api服务器实现驱逐操作。
88.从上述技术方案可以看出,本技术通过响应于节点资源超售指令,确定目标节点的资源峰值使用量;根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;获取更新状态后目标节点的目标资源利用率;通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。该方案根据目标节点自身的资源峰值使用量计算出资源超售系数,并修改总预留资源量,以此更新节点状态,并根据更新状态后的目标资源利用率进行
任务调整,从而灵活地实现节点资源的超售目的,真正有效的解决了资源利用率差的问题。
89.本发明实施例提供的方法中,响应于节点资源超售指令,确定目标节点的资源峰值使用量的过程,可以包括以下三种方式:
90.(一)响应于节点资源超售指令,获取所述目标节点在当前时刻之前的第一预设时间段内的cpu利用率、内存利用率和任务负载;
91.基于所述任务负载,设置与所述cpu利用率对应的第一权重系数以及与所述内存利用率对应的第二权重系数;
92.将所述cpu利用率与所述第一权重系数相乘,得到第一资源使用量;
93.将所述内存利用率与所述第二权重系数相乘,得到第二资源使用量;
94.将所述第一资源使用量与所述第二资源使用量相加,得到所述目标节点的资源峰值使用量。
95.可以将第一预设时间段设置为5分钟、6分钟等较短的时间段。
96.(二)响应于节点资源超售指令,获取所述目标节点中每个任务的资源使用百分比;
97.计算所有任务的资源使用百分比的总和,得到第一资源使用百分比;
98.选取所述目标资源使用百分比中与第一预设百分位对应的第二资源使用百分比;
99.将所述第二资源使用百分比转化为所述目标节点的资源峰值使用量。
100.具体地,第一预设百分位可以设置为第95位,本实施例对此不作限制。
101.(三)响应于节点资源超售指令,获取所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量;
102.根据所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量计算目标均值和目标方差;
103.基于所述目标均值和目标方差进行正态分布计算,得到所述目标节点的资源峰值使用量。
104.具体地,构建正态分布函数μ+3σ,将目标均值作为μ,将σ作为目标方差,以此计算目标节点的资源峰值使用量。
105.另外,还可以增加cpu、内存等突发事件检测和通知机制,以便更加实时准确地确定目标节点的资源峰值使用量。
106.在上述过程中,api服务器与自定义指标服务器、节点之间的关系可以如图4所示,从kubelet(在每个节点上运行的主要节点代理)获取节点指标(metrics)并提取重要的一些scaper,比如核心数、内存容量等,metrics provider实现了提供metrics的具体方法,scaper实现了原始指标数据的提取。其中,scaper指的是从kubelet中的cadvisor抓取并存储一小部分指标,metrics provider是将kubernetes集群对象的管理服务连接到监控的组件,cadvisor是让容器用户了解其运行容器的资源使用情况和性能特征的组件。
107.具体地,根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数的过程,可以包括:
108.获取所述目标节点的资源请求量;
109.将所述资源请求量除以所述资源峰值使用量,得到与所述目标节点对应的资源超售系数。
110.在计算得到资源超售系数后,获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态。
111.在一个示例中,资源请求量为50gib,资源峰值使用量为20gib,目标节点中的所有任务的总预留资源量为128gib,那么资源超售系数为50gib/20gib=2.5,再将超售系数乘以总预留资源量得到更新后的总预留资源量:128
×
2.5=320gib。
112.在上述过程中,当目标节点中有新的任务上线时,目标节点的资源使用量可能会逐渐增长,直至稳定。因此可以等待一段时间,不进行资源超售,使用资源请求作为预测。另外,随着资源使用量的增加,会迅速降低过度使用因子,不过会随着资源使用量的减少缓慢增加。本技术中还可以对资源超售系数实施硬性限制,比如限制在1~1.5。
113.上述实施例对本技术中的响应于节点资源超售指令,确定目标节点的资源峰值使用量的过程进行了说明,下面对本技术中的通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售的过程进行详细说明。
114.获取所述目标节点的固定内存上限值;
115.基于所述固定内存上限值确定第一阈值;
116.分别将所述目标资源利用率与所述第一阈值以及预设的第二阈值进行比较;
117.若所述目标资源利用率不小于所述第二阈值,且小于所述第一阈值,则当前时刻停止对所述目标节点的任务调度,以实现节点资源的超售;
118.若所述目标资源利用率不小于所述第一阈值,则对所述目标节点中的任务进行驱逐,以实现节点资源的超售。
119.其中,对所述目标节点中的任务进行驱逐的步骤,具体包括:
120.若所述目标资源利用率不小于所述第一阈值,则根据所述目标资源利用率以及第一阈值确定驱逐数量;获取所述目标节点中每个任务所标记的标签;将标记有可驱逐标签的任务作为各个第一目标任务。
121.若所述第一目标任务的数量不小于所述驱逐数量,则从各个所述第一目标任务中选取驱逐数量的任务进行驱逐。
122.若所述第一目标任务的数量小于所述驱逐数量,则将所述驱逐数量减去所述第一目标任务的数量,得到第二数量;获取所述目标节点中除第一目标任务外其他各个任务的调度优先级;将调度优先级小于最高预设优先级的各个任务作为各个第二目标任务。
123.判断所述第二目标任务的数量是否不小于所述第二数量。
124.若是,则按照调度优先级的高低顺序,从各个所述第二目标任务中选取第二数量的任务作为第三目标任务;将各个第一目标任务和第三目标任务进行驱逐;
125.若所述第二目标任务的数量小于所述第二数量,则将驱逐数量减去所述第一目标任务以及第二目标任务的数量,得到第三数量,并将最高预设优先级对应的各个任务作为各个第四目标任务;
126.针对每一个第四目标任务,确定该第四目标任务的预留资源量以及实际资源使用量;
127.将所述预留资源量除以所述实际资源使用量,得到第一比值;
128.获取该第四目标任务的创建时间;
129.基于所述第一比值以及创建时间确定该第四目标任务的运行优先级;
130.根据各个第四目标任务的运行优先级,从各个所述第四目标任务中选取第三数量的任务作为第五目标任务;
131.将各个第一目标任务、第三目标任务和第五目标任务进行驱逐。
132.具体地,当确定需要在当前时刻停止对目标节点的任务调度后,可以给该目标节点打上污点标签,以表示该目标节点不可以调度任务,而当qos代理组件检测到过载,即目标资源利用率不小于所述第一阈值时,则向api服务器发送驱逐请求,对目标节点中的部分任务进行驱逐。
133.从上述方案中可知,该方案可以缓解由于用户不合理的资源请求和预留所带来的资源浪费,提高节点甚至集群整体的资源利用率,在固定内存上限值不变的情况下能容纳更多的任务,从而减少任务处理的平均等待时间。
134.与图2所述的方法相对应,本发明实施例还提供了节点资源的超售装置,用于对图2中方法的具体实现,本发明实施例提供的节点资源的超售装置可以在计算机终端或各种移动设备中,结合图5,对节点资源的超售装置进行介绍,如图5所示,该装置可以包括:
135.响应模块10,用于响应于节点资源超售指令,确定目标节点的资源峰值使用量;
136.计算模块20,用于根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;
137.修改模块30,用于获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
138.目标资源利用率获取模块40,用于获取更新状态后目标节点的目标资源利用率;
139.任务调整模块50,用于通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
140.从上述技术方案可以看出,本技术通过响应于节点资源超售指令,确定目标节点的资源峰值使用量;根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;获取更新状态后目标节点的目标资源利用率;通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。该方案根据目标节点自身的资源峰值使用量计算出资源超售系数,并修改总预留资源量,以此更新节点状态,并根据更新状态后的目标资源利用率进行任务调整,从而灵活地实现节点资源的超售目的,真正有效的解决了资源利用率差的问题。
141.更进一步地,本技术实施例提供了一种节点资源的超售设备。可选的,图6示出了节点资源的超售设备的硬件结构框图,参照图6,节点资源的超售设备的硬件结构可以包括:至少一个处理器01,至少一个通信接口02,至少一个存储器03和至少一个通信总线04。
142.在本技术实施例中,处理器01、通信接口02、存储器03、通信总线04的数量为至少一个,且处理器01、通信接口02、存储器03通过通信总线04完成相互间的通信。
143.处理器01可以是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等。
144.存储器03可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器。
145.其中,存储器存储有程序,处理器可调用存储器存储的程序,程序用于执行下述节点资源的超售方法,包括:
146.响应于节点资源超售指令,确定目标节点的资源峰值使用量;
147.根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;
148.获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
149.获取更新状态后目标节点的目标资源利用率;
150.通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
151.可选的,程序的细化功能和扩展功能可参照方法实施例中的节点资源的超售方法的描述。
152.本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,在所述程序运行时控制所述存储介质所在的设备执行下述节点资源的超售方法,包括:
153.响应于节点资源超售指令,确定目标节点的资源峰值使用量;
154.根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;
155.获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
156.获取更新状态后目标节点的目标资源利用率;
157.通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
158.具体地,该存储介质可以是一种计算机可读存储介质,计算机可读存储介质可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。
159.可选的,程序的细化功能和扩展功能可参照方法实施例中的节点资源的超售方法的描述。
160.另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,直播设备,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。
161.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
162.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
163.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种节点资源的超售方法,其特征在于,包括:响应于节点资源超售指令,确定目标节点的资源峰值使用量;根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;获取更新状态后目标节点的目标资源利用率;通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。2.根据权利要求1所述的方法,其特征在于,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:响应于节点资源超售指令,获取所述目标节点在当前时刻之前的第一预设时间段内的cpu利用率、内存利用率和任务负载;基于所述任务负载,设置与所述cpu利用率对应的第一权重系数以及与所述内存利用率对应的第二权重系数;将所述cpu利用率与所述第一权重系数相乘,得到第一资源使用量;将所述内存利用率与所述第二权重系数相乘,得到第二资源使用量;将所述第一资源使用量与所述第二资源使用量相加,得到所述目标节点的资源峰值使用量。3.根据权利要求1所述的方法,其特征在于,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:响应于节点资源超售指令,获取所述目标节点中每个任务的资源使用百分比;计算所有任务的资源使用百分比的总和,得到第一资源使用百分比;选取所述目标资源使用百分比中与第一预设百分位对应的第二资源使用百分比;将所述第二资源使用百分比转化为所述目标节点的资源峰值使用量。4.根据权利要求1所述的方法,其特征在于,所述响应于节点资源超售指令,确定目标节点的资源峰值使用量,包括:响应于节点资源超售指令,获取所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量;根据所述目标节点在当前时刻之前的各个第二预设时间段内的第三资源使用量计算目标均值和目标方差;基于所述目标均值和目标方差进行正态分布计算,得到所述目标节点的资源峰值使用量。5.根据权利要求1所述的方法,其特征在于,所述根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数,包括:获取所述目标节点的资源请求量;将所述资源请求量除以所述资源峰值使用量,得到与所述目标节点对应的资源超售系数。6.根据权利要求1所述的方法,其特征在于,所述通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售,包括:获取所述目标节点的固定内存上限值;
基于所述固定内存上限值确定第一阈值;分别将所述目标资源利用率与所述第一阈值以及预设的第二阈值进行比较;若所述目标资源利用率不小于所述第二阈值,且小于所述第一阈值,则当前时刻停止对所述目标节点的任务调度,以实现节点资源的超售;若所述目标资源利用率不小于所述第一阈值,则对所述目标节点中的任务进行驱逐,以实现节点资源的超售。7.根据权利要求6所述的方法,其特征在于,所述若所述目标资源利用率不小于所述第一阈值,则对所述目标节点中的任务进行驱逐,以实现节点资源的超售,包括:若所述目标资源利用率不小于所述第一阈值,则根据所述目标资源利用率以及第一阈值确定驱逐数量;获取所述目标节点中每个任务所标记的标签;将标记有可驱逐标签的任务作为各个第一目标任务,若所述第一目标任务的数量不小于所述驱逐数量,则从各个所述第一目标任务中选取驱逐数量的任务进行驱逐。8.根据权利要求7所述的方法,其特征在于,还包括:若所述第一目标任务的数量小于所述驱逐数量,则将所述驱逐数量减去所述第一目标任务的数量,得到第二数量;获取所述目标节点中除第一目标任务外其他各个任务的调度优先级;将调度优先级小于最高预设优先级的各个任务作为各个第二目标任务;判断所述第二目标任务的数量是否不小于所述第二数量;若是,则按照调度优先级的高低顺序,从各个所述第二目标任务中选取第二数量的任务作为第三目标任务;将各个第一目标任务和第三目标任务进行驱逐。9.根据权利要求8所述的方法,其特征在于,还包括:若所述第二目标任务的数量小于所述第二数量,则将驱逐数量减去所述第一目标任务以及第二目标任务的数量,得到第三数量,并将最高预设优先级对应的各个任务作为各个第四目标任务;针对每一个第四目标任务,确定该第四目标任务的预留资源量以及实际资源使用量;将所述预留资源量除以所述实际资源使用量,得到第一比值;获取该第四目标任务的创建时间;基于所述第一比值以及创建时间确定该第四目标任务的运行优先级;根据各个第四目标任务的运行优先级,从各个所述第四目标任务中选取第三数量的任务作为第五目标任务;将各个第一目标任务、第三目标任务和第五目标任务进行驱逐。10.一种节点资源的超售装置,其特征在于,包括:响应模块,用于响应于节点资源超售指令,确定目标节点的资源峰值使用量;计算模块,用于根据所述目标节点的资源峰值使用量,计算与所述目标节点对应的资源超售系数;修改模块,用于获取所述目标节点中的所有任务的总预留资源量,基于所述超售系数修改所述总预留资源量,并利用修改后的总预留资源量更新所述目标节点的当前状态;
目标资源利用率获取模块,用于获取更新状态后目标节点的目标资源利用率;任务调整模块,用于通过所述目标资源利用率对所述目标节点进行任务调整,以实现节点资源的超售。
技术总结
本申请公开一种节点资源的超售方法及装置,通过响应于节点资源超售指令,确定目标节点的资源峰值使用量;根据目标节点的资源峰值使用量,计算与目标节点对应的资源超售系数;获取目标节点中的所有任务的总预留资源量,基于超售系数修改总预留资源量,并利用修改后的总预留资源量更新目标节点的当前状态;获取更新状态后目标节点的目标资源利用率;通过目标资源利用率对目标节点进行任务调整,以实现节点资源的超售。该方案根据目标节点自身的资源峰值使用量计算出资源超售系数,并修改总预留资源量,以此更新节点状态,并根据更新状态后的目标资源利用率进行任务调整,从而灵活地实现节点资源的超售目的,真正有效的解决了资源利用率差的问题。利用率差的问题。利用率差的问题。
技术研发人员:李一宏
受保护的技术使用者:广州文远知行科技有限公司
技术研发日:2023.06.30
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/