一种流量调控方法、装置、设备及可读存储介质与流程

文档序号:30339036发布日期:2022-06-08 07:33阅读:77来源:国知局
一种流量调控方法、装置、设备及可读存储介质与流程

1.本发明涉及流量调控技术领域,具体而言,涉及一种流量调控方法、装置、设备及可读存储介质。


背景技术:

2.docker swarm内部流量平衡机制主要关注如何根据用户请求将其平均分配给工作节点。它的缺点在于不提供任何机制来监视每个工作节点的内存利用率,因此这可能导致工作节点之间的流量分配不均。


技术实现要素:

3.本发明的目的在于提供一种流量调控方法、装置、设备及可读存储介质,以改善上述问题。
4.为了实现上述目的,本技术实施例提供了如下技术方案:
5.一方面,本技术实施例提供了一种流量调控方法,所述方法包括:
6.获取第一信息和第二信息,所述第一信息包括docker swarm容器集群信息,所述docker swarm容器集群包括管理器节点和工作节点,所述第二信息包括内存利用率阈值;
7.根据所述内存利用率阈值对所述工作节点的内存利用率进行监控,得到监控结果;
8.根据所述监控结果和所述管理器节点对所述工作节点的流量进行调控。
9.可选的,所述对所述工作节点的内存利用率进行监控,得到监控结果,包括:
10.对所述工作节点的内存利用率进行实时监控,其中,若所述工作节点的内存利用率大于所述内存利用率阈值,则监控结果为需要调控工作节点的内存利用率,若所述工作节点的内存利用率小于或等于所述内存利用率阈值,则监控结果为无需调控工作节点的内存利用率。
11.可选的,所述根据所述监控结果和所述管理器节点对所述工作节点的流量进行调控,包括:
12.对所述监控结果进行解析,其中,若所述监控结果为需要调控所述工作节点的内存利用率,则触发所述管理器节点计算所述内存利用率未超过所述内存利用率阈值的每个工作节点的综合评分;
13.将所述综合评分按照从低到高的顺序进行排序,将需要进行流量调控的工作节点上的未执行的任务分配给所述综合评分最低所对应的工作节点。
14.可选的,所述计算所述内存利用率未超过所述内存利用率阈值的每个工作节点的综合评分,包括:
15.将所述内存利用率未超过所述内存利用率阈值的工作节点定义为负载不足的工作节点,并获取负载不足的工作节点的属性信息,所述属性信息包括cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
16.对所述cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量进行归一化处理,得到归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
17.基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量计算得到每个所述负载不足的工作节点的综合评分。
18.可选的,所述基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量计算得到每个所述负载不足的工作节点的综合评分,包括:
19.基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量构建决策矩阵;
20.对所述决策矩阵进行标准化处理,得到标准化处理后的决策矩阵;
21.基于所述标准化处理后的决策矩阵得到每个所述负载不足的工作节点的综合评分。
22.可选的,所述基于所述标准化处理后的决策矩阵得到每个所述负载不足的工作节点的综合评分,包括:
23.基于所述标准化处理后的决策矩阵计算得到相关系数矩阵的特征值,基于所述特征值计算得到cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量分别对应的权重系数;
24.基于所述权重系数和各属性的属性值得到每个所述负载不足的工作节点的综合评分。
25.第二方面,本技术实施例提供了一种流量调控装置,所述装置包括获取模块、监控模块和调控模块。
26.获取模块,用于获取第一信息和第二信息,所述第一信息包括docker swarm容器集群信息,所述docker swarm容器集群包括管理器节点和工作节点,所述第二信息包括内存利用率阈值;
27.监控模块,用于根据所述内存利用率阈值对所述工作节点的内存利用率进行监控,得到监控结果;
28.调控模块,用于根据所述监控结果和所述管理器节点对所述工作节点的流量进行调控。
29.可选的,所述监控模块,包括:
30.监控单元,用于对所述工作节点的内存利用率进行实时监控,其中,若所述工作节点的内存利用率大于所述内存利用率阈值,则监控结果为需要调控工作节点的内存利用率,若所述工作节点的内存利用率小于或等于所述内存利用率阈值,则监控结果为无需调控工作节点的内存利用率。
31.可选的,所述调控模块,包括:
32.解析单元,用于对所述监控结果进行解析,其中,若所述监控结果为需要调控所述工作节点的内存利用率,则触发所述管理器节点计算所述内存利用率未超过所述内存利用率阈值的每个工作节点的综合评分;
33.排序单元,用于将所述综合评分按照从低到高的顺序进行排序,将需要进行流量调控的工作节点上的未执行的任务分配给所述综合评分最低所对应的工作节点。
34.可选的,所述解析单元,包括:
35.获取单元,用于将所述内存利用率未超过所述内存利用率阈值的工作节点定义为
负载不足的工作节点,并获取负载不足的工作节点的属性信息,所述属性信息包括cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
36.第一处理单元,用于对所述cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量进行归一化处理,得到归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
37.第一计算单元,用于基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量计算得到每个所述负载不足的工作节点的综合评分。
38.可选的,所述第一计算单元,包括:
39.构建单元,用于基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量构建决策矩阵;
40.第二处理单元,用于对所述决策矩阵进行标准化处理,得到标准化处理后的决策矩阵;
41.第二计算单元,用于基于所述标准化处理后的决策矩阵得到每个所述负载不足的工作节点的综合评分。
42.可选的,所述第二计算单元,包括:
43.第三计算单元,用于基于所述标准化处理后的决策矩阵计算得到相关系数矩阵的特征值,基于所述特征值计算得到cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量分别对应的权重系数;
44.第四计算单元,用于基于所述权重系数和各属性的属性值得到每个所述负载不足的工作节点的综合评分。
45.第三方面,本技术实施例提供了一种流量调控设备,所述设备包括存储器和处理器。存储器用于存储计算机程序;处理器用于执行所述计算机程序时实现上述流量调控方法的步骤。
46.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述流量调控方法的步骤。
47.本发明的有益效果为:
48.1、本发明不用根据用户请求将流量平均分配给工作节点,本发明直接根据工作节点的内存利用率自动对工作节点上的流量进行实时调控,通过本发明的方法可以保证每个工作节点都得到了公平的流量分配,进而降低某个工作节点因流量过多而发生故障的可能性。
49.2、本发明的调控方法相较于目前的调节方法更加智能,并且还可以减少工作人员的工作量。
50.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
51.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
52.图1是本发明实施例中所述的流量调控方法流程示意图;
53.图2是本发明实施例中所述的流量调控装置结构示意图;
54.图3是本发明实施例中所述的流量调控设备结构示意图。
具体实施方式
55.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.应注意到:相似的标号或字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
57.实施例1
58.如图1所示,本实施例提供了一种流量调控方法,该方法包括步骤s1、步骤s2和步骤s3。
59.步骤s1、获取第一信息和第二信息,所述第一信息包括docker swarm容器集群信息,所述docker swarm容器集群包括管理器节点和工作节点,所述第二信息包括内存利用率阈值;
60.步骤s2、根据所述内存利用率阈值对所述工作节点的内存利用率进行监控,得到监控结果;
61.步骤s3、根据所述监控结果和所述管理器节点对所述工作节点的流量进行调控。
62.在本实施例中,不用根据用户请求将流量平均分配给工作节点,直接根据工作节点的内存利用率自动对工作节点上的流量进行实时调控,通过本实施例的方法可以保证每个工作节点都得到了公平的流量分配,进而降低某个工作节点因流量过多而发生故障的可能性。本实施例的调控方法相较于目前的调节方法更加智能,并且还可以减少工作人员的工作量。
63.本实施例中docker swarm容器集群的构建方法为:在物理计算机中使用docker机器构建三个docker引擎,使用这三个docker引擎部署了一个docker swarm,其中包含一个manager节点和两个worker节点。
64.内存利用率阈值可以根据用户的需求进行自定义,在本实施例中,内存利用率阈值设置为80%。
65.在本公开的一种具体实施方式中,所述步骤s2,还可以包括步骤s21。
66.步骤s21、对所述工作节点的内存利用率进行实时监控,其中,若所述工作节点的内存利用率大于所述内存利用率阈值,则监控结果为需要调控工作节点的内存利用率,若所述工作节点的内存利用率小于或等于所述内存利用率阈值,则监控结果为无需调控工作
节点的内存利用率。
67.在本公开的一种具体实施方式中,所述步骤s3,还可以包括步骤s31和步骤s32。
68.步骤s31、对所述监控结果进行解析,其中,若所述监控结果为需要调控所述工作节点的内存利用率,则触发所述管理器节点计算所述内存利用率未超过所述内存利用率阈值的每个工作节点的综合评分;
69.步骤s32、将所述综合评分按照从低到高的顺序进行排序,将需要进行流量调控的工作节点上的未执行的任务分配给所述综合评分最低所对应的工作节点。
70.在本实施例中,当某个工作节点的内存利用率大于80%,则管理器节点会对这个工作节点进行流量调控,其中综合评分越低证明这个工作节点的性能越好,因此将需要进行流量调控的工作节点上的未执行的任务分配给该工作节点。
71.在本公开的一种具体实施方式中,所述步骤s31,还可以包括步骤s311、步骤s312和步骤s313。
72.步骤s311、将所述内存利用率未超过所述内存利用率阈值的工作节点定义为负载不足的工作节点,并获取负载不足的工作节点的属性信息,所述属性信息包括cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
73.步骤s312、对所述cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量进行归一化处理,得到归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
74.步骤s313、基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量计算得到每个所述负载不足的工作节点的综合评分。
75.在本公开的一种具体实施方式中,所述步骤s313,还可以包括步骤s3131、步骤s3132和步骤s3133。
76.步骤s3131、基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量构建决策矩阵;
77.步骤s3132、对所述决策矩阵进行标准化处理,得到标准化处理后的决策矩阵;
78.步骤s3133、基于所述标准化处理后的决策矩阵得到每个所述负载不足的工作节点的综合评分。
79.在本公开的一种具体实施方式中,所述步骤s3133,还可以包括步骤s31331和步骤s31332。
80.步骤s31331、基于所述标准化处理后的决策矩阵计算得到相关系数矩阵的特征值,基于所述特征值计算得到cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量分别对应的权重系数;
81.步骤s31332、基于所述权重系数和各属性的属性值得到每个所述负载不足的工作节点的综合评分。
82.在本实施例中,步骤s311-步骤s313、步骤s3131-步骤s3133和步骤s31331-步骤s31332可以理解为:管理器节点先计算其管理的工作节点中负载不足的工作节点的每个属性的权重,然后再根据各个属性的属性值和对应的权重得到每个负载不足的工作节点的综合评分,然后再将管理器节点管理的工作节点中内存利用率超过内存利用率阈值的工作节点上的流量调控到综合评分最低的负载不足的工作节点上,其中,可以采用常规技术手段实现计算每个属性的权重。
83.在本实施例中还可以采用以下方法计算得到每个负载不足的工作节点的综合评分;
84.(1)把负载不足的工作节点的属性信息:索引(index)、容器名(name)、cpu占用率(cpu%)、内存利用率(mem%)、网络吞吐量(net/io)和磁盘吞吐量(block/io)形成决策数据表{[index,name,cpu%,mem%,net/io,block/io],

};
[0085]
(2)将决策数据表的cpu%、mem%,net/io,block/io属性进行归一化处理,基于属性值非线性相关且数值敏感的特点,使用log函数归一化,其计算公式为:
[0086]
xi=lg vi/lg max(vi)
[0087]
公式中,vi为每个属性的属性值;xi为归一化处理之后的属性的属性值;
[0088]
(3)从归一化后的决策数据表中选择属性列cpu%、mem%,net/io,block/io,构建决策矩阵:
[0089]
x=|x
ij
|
n*4
[0090]
公式中,x为决策矩阵,n为一个管理器节点管理的负载不足的工作节点的个数,x
ij
为决策矩阵里面的元素,i为决策矩阵的行数,j为决策矩阵的列数,例如,x
11
为第一个负载不足的工作节点的第一个归一化处理之后的属性的属性值;x
21
为第二个负载不足的工作节点的第一个归一化处理之后的属性的属性值;
[0091]
(4)为消除正、逆指标的影响,将决策矩阵x进行标准化处理,得标准化后的矩阵为:
[0092][0093][0094][0095]
公式中,y为标准化后的矩阵,为决策矩阵中第j列元素的平均值;
[0096]
(5)计算相关系数矩阵r=y
t
y/n的特征值,得到r的4个特征值λ1,λ2,λ3,λ4,其中y
t
为标准化后的矩阵的转置矩阵;
[0097]
(6)由公式:
[0098]
计算得到各属性的权重系数,其中,l为权重系数的序号数;例如,在本实施例中,计算的是cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量这四个属性的权重系数,则:
[0099][0100]
(7)计算每个负载不足的工作节点的综合评分:
[0101][0102]
公式中,xi指各属性的属性值值,wi指各属性对应的权重系数。
[0103]
实施例2
[0104]
如图2所示,本实施例提供了一种流量调控装置,所述装置包括获取模块701、监控
模块702和调控模块703。
[0105]
获取模块701,用于获取第一信息和第二信息,所述第一信息包括docker swarm容器集群信息,所述docker swarm容器集群包括管理器节点和工作节点,所述第二信息包括内存利用率阈值;
[0106]
监控模块702,用于根据所述内存利用率阈值对所述工作节点的内存利用率进行监控,得到监控结果;
[0107]
调控模块703,用于根据所述监控结果和所述管理器节点对所述工作节点的流量进行调控。
[0108]
在本实施例中,不用根据用户请求将流量平均分配给工作节点,直接根据工作节点的内存利用率自动对工作节点上的流量进行实时调控,通过本实施例的方法可以保证每个工作节点都得到了公平的流量分配,进而降低某个工作节点因流量过多而发生故障的可能性。本实施例的调控方法相较于目前的调节方法更加智能,并且还可以减少工作人员的工作量。
[0109]
在本公开的一种具体实施方式中,所述监控模块702,还包括监控单元7021。
[0110]
监控单元7021,用于对所述工作节点的内存利用率进行实时监控,其中,若所述工作节点的内存利用率大于所述内存利用率阈值,则监控结果为需要调控工作节点的内存利用率,若所述工作节点的内存利用率小于或等于所述内存利用率阈值,则监控结果为无需调控工作节点的内存利用率。
[0111]
在本公开的一种具体实施方式中,所述调控模块703,还包括解析单元7031和排序单元7032。
[0112]
解析单元7031,用于对所述监控结果进行解析,其中,若所述监控结果为需要调控所述工作节点的内存利用率,则触发所述管理器节点计算所述内存利用率未超过所述内存利用率阈值的每个工作节点的综合评分;
[0113]
排序单元7032,用于将所述综合评分按照从低到高的顺序进行排序,将需要进行流量调控的工作节点上的未执行的任务分配给所述综合评分最低所对应的工作节点。
[0114]
在本公开的一种具体实施方式中,所述解析单元7031,还包括获取单元70311、第一处理单元70312和第一计算单元70313。
[0115]
获取单元70311,用于将所述内存利用率未超过所述内存利用率阈值的工作节点定义为负载不足的工作节点,并获取负载不足的工作节点的属性信息,所述属性信息包括cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
[0116]
第一处理单元70312,用于对所述cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量进行归一化处理,得到归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量;
[0117]
第一计算单元70313,用于基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量计算得到每个所述负载不足的工作节点的综合评分。
[0118]
在本公开的一种具体实施方式中,所述第一计算单元70313,还包括构建单元703131、第二处理单元703132和第二计算单元703133。
[0119]
构建单元703131,用于基于归一化处理后的cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量构建决策矩阵;
[0120]
第二处理单元703132,用于对所述决策矩阵进行标准化处理,得到标准化处理后的决策矩阵;
[0121]
第二计算单元703133,用于基于所述标准化处理后的决策矩阵得到每个所述负载不足的工作节点的综合评分。
[0122]
在本公开的一种具体实施方式中,所述第二计算单元703133,还包括第三计算单元7031331和第四计算单元7031332。
[0123]
第三计算单元7031331,用于基于所述标准化处理后的决策矩阵计算得到相关系数矩阵的特征值,基于所述特征值计算得到cpu占用率、内存利用率、网络吞吐量和磁盘吞吐量分别对应的权重系数;
[0124]
第四计算单元7031332,用于基于所述权重系数和各属性的属性值得到每个所述负载不足的工作节点的综合评分。
[0125]
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0126]
实施例3
[0127]
相应于上面的方法实施例,本公开实施例还提供了流量调控设备,下文描述的流量调控设备与上文描述的流量调控方法可相互对应参照。
[0128]
图3是根据一示例性实施例示出的流量调控设备800的框图。如图3所示,该流量调控设备800可以包括:处理器801,存储器802。该流量调控设备800还可以包括多媒体组件803,输入/输出(i/o)接口804,以及通信组件805中的一者或多者。
[0129]
其中,处理器801用于控制该流量调控设备800的整体操作,以完成上述的流量调控方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该流量调控设备800的操作,这些数据例如可以包括用于在该流量调控设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该流量调控设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
[0130]
在一示例性实施例中,该流量调控设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器
(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的流量调控方法。
[0131]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的流量调控方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由该流量调控设备800的处理器801执行以完成上述的流量调控方法。
[0132]
实施例4
[0133]
相应于上面的方法实施例,本公开实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的流量调控方法可相互对应参照。
[0134]
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的流量调控方法的步骤。
[0135]
该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
[0136]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1