首页> 中国专利> 一种基于深度学习的云平台资源动态调度方法

一种基于深度学习的云平台资源动态调度方法

摘要

一种基于深度学习的云平台资源动态调度方法,包括:从系统的监控信息和日志文件获得时间序列数据,并将时间序列数据作为模型的训练数据集;构建工作负载预测模型;构建响应时间预测模型;根据构建的工作负载预测模型和响应时间预测模型,构建调度策略模型:对调度策略模型进行联调,优化模型参数,形成稳定的基于深度学习的云平台资源动态调度模型,实现对云平台资源的调度。本发明基于面向服务器的调度,使用深度学习模型持续训练,最终得到稳定有效的模型,可以实现云平台资源自动化调度,在实际的生产中可以节省大量的云资源,具有良好的经济效益。

著录项

  • 公开/公告号CN113806094A

    专利类型发明专利

  • 公开/公告日2021-12-17

    原文格式PDF

  • 申请/专利权人 宝信软件(武汉)有限公司;

    申请/专利号CN202111114287.7

  • 发明设计人 彭超;冯纯博;

    申请日2021-09-23

  • 分类号G06F9/50(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人吴静

  • 地址 430080 湖北省武汉市青山区和平大道1278号深国投中心2302-2310号、24-25层

  • 入库时间 2023-06-19 13:45:04

说明书

技术领域

本发明涉及的是自动化运维领域,特别涉及一种基于深度学习的云平台资源动态调度方法。

背景技术

云计算是一种新兴的领先信息技术,云计算是在“云”上分配计算任务,通过专用软件实现的自动化管理使用户能够按需访问计算能力、存储空间和信息服务,用户可以专注于自己的业务,无需考虑复杂的技术细节,有助于提高效率、降低成本和技术创新。

根据现有的调查,云计算的用户数量将至少在2026年前持续增长,云计算在商业和民用领域的需求越来越大,持续增长的用户数量同样也带来了数据规模和服务运营压力的扩大和增加。在实际的环境中,运行云服务应用的服务器面临着巨大的工作负载,并且大多数服务应用的工作负载会随着时间的变化而变化,通过传统的负载均衡以及静态的数量调整很难让所有在运行的服务器保持最佳使用率。因此需要允许服务器以及其他计算资源的数量进行弹性变化,和实际的负载变化相契合,提高资源利用率,同时满足服务质量(QoS)和服务级别协议(SLAs)的要求。一般来说,通过让一些服务器在低负载时休眠,可以帮助客户和提供商降低服务器的租赁成本和功耗,同时具有经济和环境上的效益。为了让服务器资源能够稳定工作,具有好的可扩展性以及避免异构带来的问题,以往都是使用虚拟化技术对服务器资源进行优化和管理。

云计算研究的关键技术有:虚拟化技术、数据存储技术、资源管理技术、能源管理技术、云监控技术等。其中,系统资源调度是云计算中的关键问题之一。然而,由于云计算平台上应用程序的多样性和用户负载的动态变化,可能发生节点之间负载不平衡的问题,一些节点负载不足、资源不足,而另一些节点负载闲置空闲,极大地影响了云计算系统的整体性能。此外,随着云计算资源规模的扩大,资源集群的人工或手动管理变得非常不现实。因此,如何通过适当的算法自动协调服务器之间的负载,以提升云计算平台的资源利用率已成为云计算领域迫切需要解决的问题。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于深度学习的云平台资源动态调度方法。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种基于深度学习的云平台资源动态调度方法,包括:

S100.从系统的监控信息和日志文件获得时间序列数据,并将时间序列数据作为模型的训练数据集;

S200.构建工作负载预测模型;

S300.构建响应时间预测模型;

S400.根据构建的工作负载预测模型和响应时间预测模型,构建调度策略模型:

S500.对调度策略模型进行联调,优化模型参数,形成稳定的基于深度学习的云平台资源动态调度模型,实现对云平台资源的调度。

进一步地,构建工作负载预测模型的方法为:

S201.使用LSTM的基础上加入卷积层对工作负载数据进行特征处理,取应用服务每秒接收到的请求数量作为其工作负载数据,并将改数据预处理成一维数组,模型每次截取其中多个元素作为输入;

S202.将输入的元素送入卷积层和池化层,其中,卷积核的大小为1×5,卷积核个数为5,max-pooling层中核大小为1×2;

S203.将卷积、池化运算提取的数据特征送到LSTM层和全连接的BP神经网络层,然后给出预测的工作负载值;

S204.在模型工作时使用监控器持续监控实际的工作负载和模型预测误差并搜集数据,当监控器搜集到足够的工作负载数据时,将使用搜集的新数据线上训练现有模型;

S205.安装预警模型,对线上数据进行监控,预测系统的预警发生。

进一步地,LSTM层含72个神经单元。

进一步地,如果监控器中发现预测误差连续高于某一SLAs制定的阈值,则模型会使用所有数据进行线下重新训练,然后用新模型代替现有模型工作。

进一步地,构建响应时间预测模型的方法为:使用多层BP神经网络来学习有关响应时间的特征,其中,将预测工作量、当前服务器数量、每个服务器的平均工作负载和每个应用请求能使用到的服务器数量作为模型输入,将隐藏层设置为4层全连接层,将网络形状选为5×5×5×5,神经单元使用Re-LU作为激活函数,输出层中神经单元为线性激活函数,输出层输出一维数据。

进一步地,在每个神经单元中添加一次批标准化运算,用在小批次模型训练中加速模型收敛和解决模型过拟合的问题。

进一步地,构建调度策略模型的方法为:调度策略模型采用BP神经网络来确定需要调整服务器的数量,模型的输入包括预测工作量、预测响应时间、当前服务器数量和响应时间目标这3种元素;隐藏层为3层全连接网络,形状为5×5×5。隐藏层和输出层神经单元的激活函数分别为Re-LU和线性函数且添加批标准化处理,该模型学习数据的特征信息,输出应调整的服务器数量作为调度策略。

进一步地,调度策略模型的输入数据可以从以前的调度策略模型模型中收集,或者根据SLAs进行预处理得到。

本发明实施例提供的上述技术方案的有益效果至少包括:

本发明公开的一种基于深度学习的云平台资源动态调度方法,可以实时监控工作负载或服务器利用率的变化,并根据这些变化适当地调整应用服务器的数量。一般来说,资源调度调度有2种不同的资源监控和调度角度:面向服务器和面向应用。面向服务器的调度会考量服务器的实际状态,进行对应的资源调度。能准确预测云平台上应用服务的工作负载和响应时间,并以此为基础给出合适的资源调度策略。本发明基于面向服务器的调度,使用深度学习模型持续训练,最终得到稳定有效的模型,可以实现云平台资源自动化调度,在实际的生产中可以节省大量的云资源,具有良好的经济效益。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本明实施例1中,一种基于深度学习的云平台资源动态调度方法的流程图;

图2为本发明实施例1中,工作负载预测模型示意图;

图3为本发明实施例2中,响应时间预测模型示意图;

图4为本发明实施例2中,调度策略模型示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为了解决现有技术中存在的问题,本发明实施例提供一种基于深度学习的云平台资源动态调度方法。

实施例1

一种基于深度学习的云平台资源动态调度方法,如图1,包括:

S100.从系统的监控信息和日志文件获得时间序列数据,并将时间序列数据作为模型的训练数据集;具体的,如果将一段时间序列看成一幅只有一行像素点的图,可以从一个新的角度去处理时间序列中特征信息提取的问题。通过在神经网络中添加卷积层进行卷积运算,能够很好地提取数据中重要的特征信息。

S200.构建工作负载预测模型,工作负载预测模型结构如图2;具体的,构建工作负载预测模型的方法为:

S201.使用LSTM的基础上加入卷积层对工作负载数据进行特征处理,取应用服务每秒接收到的请求数量作为其工作负载数据,并将改数据预处理成一维数组,模型每次截取其中72个元素作为输入;

S202.将输入的元素送入卷积层和池化层,其中,卷积核的大小为1×5,卷积核个数为5,max-pooling层中核大小为1×2;

S203.将卷积、池化运算提取的数据特征送到LSTM层和全连接的BP神经网络层,然后给出预测的工作负载值;

S204.在模型工作时使用监控器持续监控实际的工作负载和模型预测误差并搜集数据,当监控器搜集到足够的工作负载数据时,将使用搜集的新数据线上训练现有模型;具体的,服务器运行时工作负载会随着时间变化而变化,因此模型预测误差也可能变大。因此在模型工作时使用监控器持续监控实际的工作负载和模型预测误差并搜集数据。当监控器搜集到足够的工作负载数据时,将使用搜集的新数据线上训练现有模型,以适应工作负载的变化。此外,如果监控中发现预测误差连续高于某一SLAs制定的阈值,则模型会使用所有数据进行线下重新训练,然后用新模型代替现有模型工作。

S205.安装预警模型,对线上数据进行监控,预测系统的预警发生。

在本实施例中,LSTM层含72个神经单元。与其他单元数量(如96和128)相比,72个神经单元的模型在训练速度和减少损失方面表现最佳。为了防止模型在训练中出现过拟合的情况,该模型中使用Dropout将神经网络模型稀疏化。

S300.构建响应时间预测模型,响应时间预测模型如图3;具体到的,当给出了工作负载的预测值,调度算法就能够以此为基础预测应用服务在该工作负载下可能的响应时间。与工作负载不同,响应时间的变化与时间没有很强的关系。因此,在响应时间预测模型上并没有使用LSTM。在实际的模型实现上,使用多层BP神经网络来学习有关响应时间的特征。本文模型的输入包括预测工作量、当前服务器数量、每个服务器的平均工作负载和每个应用请求能使用到的服务器数量。隐藏层为4层全连接层,根据经验和多次比对,将网络形状选为5×5×5×5,神经单元使用Re-LU作为激活函数,而输出层中神经单元则是线性激活函数,输出一维数据。另外,在每个神经单元中本文添加了一次批标准化运算,用在小批次模型训练中加速模型收敛和解决模型过拟合的问题。

S400.根据构建的工作负载预测模型和响应时间预测模型,构建调度策略模型,调度策略模型结构如图4:具体的,在得到预测的响应时间后,算法使用调度策略模型生成调度策略。该模型的目标是给出合理的服务器调整建议,以尽量减少资源消耗,并确保响应时间低于根据SLAs制定的目标值。传统上,服务器管理人员根据特定的规则和响应时间来调整服务器。这些规则是根据服务器的历史数据和专家的经验制定的。但是,如果规则没有根据服务器资源的最新变化进行更新,它们可能不适合服务器的当前状态。此外,服务器数量变化并不是时间相关的。因此,调度策略模型采用BP神经网络来确定需要调整服务器的数量。模型的输入包括4种元素:预测工作量、预测响应时间、当前服务器数量和响应时间目标。这些数据是从以前的模型中收集的,或者根据SLAs进行预处理,隐藏层为3层全连接网络,形状为5×5×5。隐藏层和输出层神经单元的激活函数分别为Re-LU和线性函数且添加批标准化处理。该模型学习数据的特征信息,输出应调整的服务器数量作为调度策略。

S500.对调度策略模型进行联调,优化模型参数,形成稳定的基于深度学习的云平台资源动态调度模型,实现对云平台资源实时、动态、高效的调度。

本实施例公开的一种基于深度学习的云平台资源动态调度方法,可以实时监控工作负载或服务器利用率的变化,并根据这些变化适当地调整应用服务器的数量。一般来说,资源调度调度有2种不同的资源监控和调度角度:面向服务器和面向应用。面向服务器的调度会考量服务器的实际状态,进行对应的资源调度。能准确预测云平台上应用服务的工作负载和响应时间,并以此为基础给出合适的资源调度策略。本发明基于面向服务器的调度,使用深度学习模型持续训练,最终得到稳定有效的模型,可以实现云平台资源自动化调度,在实际的生产中可以节省大量的云资源,具有良好的经济效益。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号