一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于机器学习的服务资源动态分配方法及其系统

2022-06-25 05:52:27 来源:中国专利 TAG:


1.本发明属于资源分配技术领域,具体涉及一种基于机器学习的服务资源动态分配方法及其系统。


背景技术:

2.随着互联网技术的不断发展,软件开发模式逐渐从cs向bs转化。促进了实时性和设备性能没有严格要求的服务发展,以及跨平台性能、数据一致性、使用便捷性有特殊要求的应用广泛使用。软件设计人员将满足上述条件的服务运算、存储功能从终端设备转向服务器。bs软件开发呈现场景多元化、需求多样化、业务复杂化等特点,这对软件部署的服务器运算速度、响应时间、吞吐量等性能提出了更高要求。随着运算任务在服务器集群实现,传统的应用正在变得越来越复杂,需要支持更多的用户,更强的计算能力,更加稳定安全。为了提高运算性能、效率、准确性、稳定性,提出了云计算的系列技术。随着软件需求的增加,软件的业务逻辑复杂性随之增加,技术债务逐渐上升,部署速度逐渐变慢,服务无法按需伸缩。为了将庞杂繁琐的软件拆分为多个可独立运行,实现一些模块独立运行,提出了微服务的设计模式。随着服务集群用户数量增加、业务复杂性进一步提高,简单的初始化服务所需的资源(如:cpu、内存、磁盘)空间可能导致需要大量资源的服务性能得不到满足,不需要初始化规定的资源数量而形成浪费。如何高效率、高稳定、动态的应用和管理服务器集群的有限资源成为当前探索的重要方向。
3.现有技术存在的问题:
4.当前微服务集群中为单个微服务分配资源(限制资源)仍然采用初始化方式或人工调节方式。这种资源分配方式费时费力,且微服务所需资源是不固定的,容易受到用户使用情况、集群闲置资源状况等多种情况影响。不合理的资源分配策略将导致两种极端情况:

需要大量资源的服务由于所需资源得不到满足,导致服务性能不能有效发挥;

不重要的服务,且不必要大量资源,在服务初始化时分配大量的资源导致资源利用率低,从而影响其他服务因资源得不到满足无法正常运行。


技术实现要素:

5.为了解决现有技术存在的资源分配方式费时费力、不合理的资源分配策略导致服务性能不能有效发挥、资源利用率低以及影响其他服务正常运行的问题,提出一种基于机器学习的服务资源动态分配方法及其系统。
6.本发明所采用的技术方案为:
7.一种基于机器学习的服务资源动态分配方法,包括如下步骤:
8.基于机器学习建立服务资源预测模型;
9.实时采集服务集群中各服务的实时服务数据;
10.提取服务集群中目标服务的实时服务数据,并将实时服务数据输入服务资源预测模型进行预测,得到目标服务的服务资源预测结果;
11.根据服务集群中各服务的实时服务数据、目标服务的服务资源预测结果及服务优先级进行动态分配,得到目标服务的服务资源分配决策;
12.根据服务资源分配决策分配目标服务的服务资源。
13.进一步地,服务资源预测模型,包括并列设置的第一预测子模型和第二预测子模型,第一预测子模型采用深度学习算法建立,第二预测子模型采用加强学习算法建立。
14.进一步地,基于机器学习建立服务资源预测模型,包括如下步骤:
15.获取集群中各服务的历史服务数据并进行预处理,得到预处理后数据集;
16.根据预处理后数据集基于深度学习算法进行训练,建立第一预测子模型;
17.根据预处理后数据集基于加强学习算法进行训练,建立第二预测子模型;
18.结合第一预测子模型和第二预测子模型,建立初始的服务资源预测模型;
19.根据预处理后数据集对初始的服务资源预测模型进行优化,得到最优的服务资源预测模型。
20.进一步地,服务数据包括不同时间粒度的服务资源占用信息和服务状态信息。
21.进一步地,服务资源预测结果为目标服务的服务资源占用信息预测值。
22.进一步地,服务资源占用信息包括服务对应的cpu占用数据、内存占用数据以及网络占用数据;
23.服务状态信息包括服务对应的吞吐量、并发量、平均响应时间以及错误率。
24.进一步地,将实时服务数据输入服务资源预测模型进行预测,包括如下步骤:
25.将目标服务的实时服务数据进行预处理,得到预处理后服务数据;
26.将预处理后服务数据输入服务资源预测模型,使用第一预测子模型得到第一预测结果,使用第二预测子模型得到第二预测结果;
27.根据第一预测结果和第二预测结果计算均值,得到目标服务的服务资源预测结果。
28.进一步地,根据服务集群中各服务的实时服务数据、目标服务的服务资源预测结果及服务优先级进行动态分配,包括如下步骤:
29.根据目标服务的服务资源预测结果及当前的服务资源占用信息进行分析;
30.若目标服务的服务资源分配过于充分,则服务资源分配决策为根据服务本身需要的资源情况,缩小其服务资源分配,结束动态分配,否则进入下一步骤;
31.若目标服务的服务资源分配不足,则检测目标服务的服务状态信息,进入下一步骤,否则结束动态分配;
32.若目标服务的状态未出现异常,则根据集群中各服务的实时服务数据得到集群可分配资源,检测集群可分配资源,进入下一步骤,否则结束动态分配;
33.若服务资源紧张,则检测目标服务的服务优先级,进入下一步骤,否则服务资源分配决策为根据服务本身需要的资源情况,扩展服务资源分配,结束动态分配;
34.若服务优先级高,则服务资源分配决策为根据服务本身需要的资源情况,扩展服务资源分配,结束动态分配,否则服务资源分配决策为按照一定比例适度扩展服务资源,结束动态分配。
35.一种基于机器学习的服务资源动态分配系统,应用于服务资源动态分配方法,包括依次连接的服务监控模块、服务资源预测模块以及决策模块,服务监控模块连接服务集
群,决策模块分别与服务监控模块和资源调控服务接口连接。
36.进一步地,服务资源预测模块包括数据预处理子模块、深度学习子模块、强化学习子模块以及均值计算子模块,数据预处理子模块分别与服务监控模块、深度学习子模块以及强化学习子模块连接,深度学习子模块和强化学习子模块均与均值计算子模块连接,深度学习子模块设置有第一预测子模型,强化学习子模块设置有第二预测子模型,均值计算子模块与决策模块连接。
37.本发明的有益效果为:
38.本发明提供的基于机器学习的服务资源动态分配方法及其系统,解决了现有技术的服务集群资源分配方式单一,资源变更困难的问题,通过采用最新的机器学习算法,学习单个服务资源占用和服务状态的特征,预测下一时间该服务可能的资源占用情况,结合集群当前资源分布状况和服务运行状态,动态优化服务集群资源分配,以满足集群稳定运行为前提,通过自动扩缩服务资源限制,实现服务的高可用性,同时保证集群资源最大利用率。
39.本发明的其他有益效果将在具体实施方式中进一步进行说明。
附图说明
40.图1是本发明中基于机器学习的服务资源动态分配方法的流程图。
41.图2是本发明中基于机器学习的服务资源动态分配系统的结构框图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.实施例1:
44.如图1所示,本实施例提供一种基于机器学习的服务资源动态分配方法,包括如下步骤:
45.基于机器学习建立服务资源预测模型,服务资源预测模型包括并列设置的第一预测子模型和第二预测子模型,第一预测子模型采用深度学习算法建立,第二预测子模型采用加强学习算法建立,建立服务资源预测模型,包括如下步骤:
46.获取集群中各服务的历史服务数据并进行预处理,得到预处理后数据集;
47.根据预处理后数据集基于深度学习算法进行训练,建立第一预测子模型;
48.深度学习算法的cnn模型主要包含卷积层、池化层、全连接层,卷积层:使用卷积核进行特征提取和特征映射,是构建卷积神经网络的核心层,产生了网络中大部分的计算量,卷积层:参数由一些可学习的滤波器集合构成,池化层:进行下采样,对特征图稀疏处理,减少数据运算量,用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性,全连接层:用于输出卷积计算后的结果;
49.根据预处理后数据集基于加强学习算法进行训练,建立第二预测子模型;
50.加强学习算法的dqn模型与监督学习不同,强化学习没有预先准备好的训练数据
的输出值,只有奖励值,但奖励值也不是事先给出的,而是延后给出的,与无监督学习也不同,无监督学习没有标签,也没有奖励值,只有一堆的数据特征,强化学习基本要素:执行个体agent、交互外界environment、动作action以及奖励reward,操作执行个体做出不同的动作action;交互外界有独立的状态,当agent做出动作action的时候,环境会发生改变,也就是交互外界的状态会发生改变,当状态发生改变时,环境会给予一定奖励reward;
51.结合第一预测子模型和第二预测子模型,建立初始的服务资源预测模型;
52.根据预处理后数据集对初始的服务资源预测模型进行优化,得到最优的服务资源预测模型;
53.实时采集服务集群中各服务的实时服务数据;
54.服务数据包括不同时间粒度的服务资源占用信息和服务状态信息,实时服务数据包括5min、10min、30min时间粒度的数据,并且历史服务数据选用了5min、10min、20min、50min长度的四个时间周期的历史数据作为训练样本集,以方便机器学习模型更好的学习数据的特征,以达到精确地预测;
55.服务资源占用信息包括服务对应的cpu占用数据、内存占用数据以及网络占用数据,服务状态信息包括服务对应的吞吐量、并发量、平均响应时间以及错误率;
56.提取服务集群中目标服务的实时服务数据,并将实时服务数据输入服务资源预测模型进行预测,得到目标服务的服务资源预测结果,服务资源预测结果为目标服务的服务资源占用信息预测值,包括如下步骤:
57.将目标服务的实时服务数据进行预处理,得到预处理后服务数据为每个时间粒度的一条训练数据元组为[cpu占用,内存占用,网络占用,吞吐量,并发量,数据流量,平均响应时间,错误率];
[0058]
将预处理后服务数据输入服务资源预测模型,使用第一预测子模型得到第一预测结果,使用第二预测子模型得到第二预测结果;
[0059]
根据第一预测结果和第二预测结果计算均值,得到目标服务的服务资源预测结果;
[0060]
根据服务集群中各服务的实时服务数据、目标服务的服务资源预测结果及服务优先级进行动态分配,得到目标服务的服务资源分配决策,包括如下步骤:
[0061]
根据目标服务的服务资源预测结果及当前的服务资源占用信息进行分析;
[0062]
若目标服务的服务资源分配过于充分,则服务资源分配决策为根据服务本身需要的资源情况,缩小其服务资源分配,结束动态分配,否则进入下一步骤;
[0063]
若目标服务的服务资源分配不足,则检测目标服务的服务状态信息,进入下一步骤,否则结束动态分配;
[0064]
若目标服务的状态未出现异常,服务无内存泄露,服务不存在如数据库链接没有关闭的错误,服务运行状态良好,当前并发率、吞吐量正常,排除因程序漏洞导致的网络攻击,则根据集群中各服务的实时服务数据得到集群可分配资源,检测集群可分配资源,进入下一步骤,否则结束动态分配;
[0065]
若服务资源紧张,则检测目标服务的服务优先级,进入下一步骤,否则服务资源分配决策为根据服务本身需要的资源情况,扩展服务资源分配,结束动态分配;
[0066]
若服务优先级高,则服务资源分配决策为根据服务本身需要的资源情况,扩展服
务资源分配,结束动态分配,否则服务资源分配决策应全局综合考虑,以保证不影响集群整体运行为前提,按照一定比例适度扩展服务资源,结束动态分配;
[0067]
根据服务资源分配决策调用kubernetes工具的api接口(资源调控服务接口)分配目标服务的服务资源。
[0068]
实施例2:
[0069]
如图2所示,本实施例提供一种基于机器学习的服务资源动态分配系统,应用于服务资源动态分配方法,包括依次连接的服务监控模块、服务资源预测模块以及决策模块,服务监控模块连接服务集群,决策模块分别与服务监控模块和资源调控服务接口连接,服务监控模块为普罗米修斯监控工具,用于实时采集服务集群中各服务的实时服务数据,服务资源预测模块用于保存服务资源预测模型,将实时服务数据输入服务资源预测模型进行预测,得到目标服务的服务资源预测结果,决策模块用于根据服务集群中各服务的实时服务数据、目标服务的服务资源预测结果及服务优先级进行动态分配,得到目标服务的服务资源分配决策。
[0070]
作为优选,服务资源预测模块包括数据预处理子模块、深度学习子模块、强化学习子模块以及均值计算子模块,数据预处理子模块分别与服务监控模块、深度学习子模块以及强化学习子模块连接,深度学习子模块和强化学习子模块均与均值计算子模块连接,深度学习子模块设置有第一预测子模型,强化学习子模块设置有第二预测子模型,均值计算子模块与决策模块连接。
[0071]
本发明提供的基于机器学习的服务资源动态分配方法及其系统,解决了现有技术的服务集群资源分配方式单一,资源变更困难的问题,通过采用最新的机器学习算法,学习单个服务资源占用和服务状态的特征,预测下一时间该服务可能的资源占用情况,结合集群当前资源分布状况和服务运行状态,动态优化服务集群资源分配,以满足集群稳定运行为前提,通过自动扩缩服务资源限制,实现服务的高可用性,同时保证集群资源最大利用率。
[0072]
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献