CN113377521A - 通过多层次相关性建立系统资源预测及管理模型的方法 - Google Patents

通过多层次相关性建立系统资源预测及管理模型的方法 Download PDF

Info

Publication number
CN113377521A
CN113377521A CN202010116728.6A CN202010116728A CN113377521A CN 113377521 A CN113377521 A CN 113377521A CN 202010116728 A CN202010116728 A CN 202010116728A CN 113377521 A CN113377521 A CN 113377521A
Authority
CN
China
Prior art keywords
application program
resource
sub
usage
main application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010116728.6A
Other languages
English (en)
Other versions
CN113377521B (zh
Inventor
陈文贤
张琬琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xianzhi Yunduan Data Co ltd
Original Assignee
Xianzhi Yunduan Data Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xianzhi Yunduan Data Co ltd filed Critical Xianzhi Yunduan Data Co ltd
Priority to CN202010116728.6A priority Critical patent/CN113377521B/zh
Publication of CN113377521A publication Critical patent/CN113377521A/zh
Application granted granted Critical
Publication of CN113377521B publication Critical patent/CN113377521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

本发明公开了一种通过多层次相关性建立系统资源预测及管理模型的方法,该方法通过分析主应用程序流量、主应用程序资源的各资源使用量及子应用程序资源的各资源使用量间的关系来建立预估模型,进而于未来时间点上预先部署特定资源以满足使用需求。这种跨多层次的分析预测及管理方法不同于仅着眼于个别层面预估与部署资源的现有技术。本发明可以利用多个层面间的互动关系,有效进行预估,进而达到减少应用程序服务运作时的隐藏性资源管理成本的优点。

Description

通过多层次相关性建立系统资源预测及管理模型的方法
技术领域
本发明有关一种建立系统资源预测及资源管理模型的方法,特别是一种通过多层次相关性建立系统资源预测及资源管理模型的方法,可有效预测应用程序流量变化而于未来时间点适当部署资源,以满足应用程序运作所需。
背景技术
现今的企业在复杂的环境中,如云端、本地及边缘计算,部署其应用程序,然而云端、本地或者是边缘计算系统架构不同,因此会造成资源管理与维护上的困难。信息科技(Information Technology,IT)系统管理人员需要学习不同环境下的系统管理与维护方式,当某些应用程序损坏时,由于复杂的系统管理与维护方式,IT系统管理人员得花费更多时间进行除错。由此可知,复杂的系统管理与维护方式会增加系统维护的成本,例如数据必须在不同系统之间移转的兼容性整合成本、数据根据不同系统的设定方式而所需的备份设定成本、不同系统的安全性规则设定不同所造成的系统维护成本等隐藏性资源管理成本。一般系统管理方案分成两种,一种是主动式管理方案,另外一种是被动式管理方案。所谓的主动式系统管理方案就是在系统还没发生问题的时候,就先预测到系统可能会发生什么问题,从而提前预警;而被动式的系统管理方案则是当系统发生问题之后,才开始寻找可行的解决策略。由于主动式的系统管理方案通常需要有丰富经验的IT系统管理者根据过去的经验分析判断未来可能发生的状况,对一般企业而言,具有精通云端、本地和边缘计算等不同系统架构,同时又具有丰富经验的IT系统管理人才不易寻找。因此为了解决前述因应用程序损坏所造成的系统管理维护问题,大多数的企业往往会采用被动式系统管理方案,或只做简单的主动式管理方案,例如只实施日常性的数据备份。被动式系统管理方案就是当系统发生问题的时候,IT系统管理人员才开始研究如何处理系统的问题。然而这对某些极端情况,比如企业资源计划(Enterprise resource planning,ERP)系统在因为公司业务扩张太快而导致系统处理的数据量突然增加,内存资源不足以应付系统处理的数据量,而使得系统无法正常运作。如果只用被动式的管理方案或者是简单的主动式管理方案,系统必须暂停营运,才能将数据还原,而系统因为暂停营运而造成的营业损失是难以衡量的。因此,相关产业的IT系统管理人员无不绞尽脑汁研究设计有效的主动式系统管理方案。
进一步来看,部署的应用程序依照其从属关联性,可以分为主应用程序以及主应用程序下的子应用程序。以前述的ERP系统作为例子,通常会包含了超文本传输协议(Hypertext Transfer Protocol,HTTP)服务器、信息传递系统、数据库系统及搜索引擎等子应用程序。每个子应用程序可以直接安装部署在丛集中的节点上,以虚拟机(VirtualMachine)或容器(Container)的方式部署,比如利用如Kubernetes的容器管理系统安装在丛集中的节点上。每个子应用程序都需要与其它子应用程序互相进行传递信息。IT系统管理人员通常会通过监控管理系统来管理主应用程序和子应用程序的中央处理器(CentralProcessing Unit,CPU)、内存等等资源使用量。举例,如果主应用程序的内存资源使用不足,IT系统管理人员就增加整个系统的内存资源;而如果是其中一个子应用程序的内存资源不足,IT系统管理人员就只调整该子应用程序的设定,来增加该子应用程序的内存资源使用量。IT系统管理人员可以通过监视管理系统的管理接口设定监控每个子应用程序,来监视及管理每个子应用程序的信息,进而达到监控和管理主应用程序,从而在主应用程序运作时搜集数据,用以判断或决定调整相关硬件支持以符合使用者需求。例如将HTTP服务器子应用程序增加三个HPPT服务器复本、减少数据库系统子应用程序10G的内存,甚至应对突发大量的需求,增加一个节点,比如增加一单位的容器,来部署ERP系统(主应用程序)。当主应用程序的流量,即使用者请求信息量,随时间变动时,每一个子应用程序对资源(诸如CPU、内存、网络流量等)也会变动,以满足主应用程序的性能要求。举例,如果主应用程序的内存资源使用不足,IT系统管理人员就增加整个系统的内存资源;而如果是其中一个子应用程序的内存资源不足,IT系统管理人员就会调整该子应用程序的设定来增加该子应用程序的内存资源使用量。然而,一般预测主应用程序资源利用率的做法就是去分别预测每个子应用程序资源利用率,再加总成主应用程序资源利用率,这样的作法会造成系统产生额外大量计算资源浪费在做预测上。因此为了降低预测资源的计算成本,大部分资源管理方案仅显示和收集实时的资源利用率,并只针对单一子应用程序做简单分析,使得很多对未来资源的需求只能靠管理人员的经验来判断。如此一来,当错误发生时,没有经验的管理人员会花费大量时间进行除错(追踪相关日志)和查找根本原因。这也是反应式管理方案造成高额隐藏性成本的来由。
相对于被动式资源管理方案,近来也有一些主动式资源管理方案被提出来解决前述的问题。大多主动式资源管理方案针对的是单一子应用程序的资源需求预估及资源提供,并不会根基于主应用程序的流量、资源使用量等多层面来进行管理,更谈不上从子应用程序间的关联性影响来应对资源的需求。若由前述多层面的角度来分析每一层面间的互动关系,就可以有效通过其间关系进行的未来时间点的需求推估,方能获得最佳的系统资源预测及资源管理,减少隐藏成本。这也是本发明提出的原因。
发明内容
本段文字提取和编译本发明的某些特点。其它特点将被公开于后续段落中。其目的在涵盖的权利要求的精神和范围中,各式的修改和类似的排列与组合。
为了满足前述需求,本发明公开一种通过多层次相关性建立系统资源预测及资源管理模型的方法。该方法包含步骤:A)于一主应用程序部署的节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用节点中各资源的使用量;B)在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并计算每个子应用程序相对于该主应用程序使用节点中各资源的比例值;C)以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一预估模型以计算在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该模型中,以获得在T+1时间点上预测的该主应用程序对每一资源的使用量;及D)将T+1时间点上预测的该主应用程序对每一资源的使用量依照对应的比例值分派给每一子应用程序。
本发明公开另一种通过多层次相关性建立系统资源预测及资源管理模型的方法。该方法包含步骤:A)于一主应用程序部署的多个节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用多个节点中各资源的使用量,并同步计算主应用程序的每一资源使用量对该主应用程序流量的第一相关性数值及每一子应用程序的每一资源使用量对该主应用程序的每一资源使用量的第二相关性数值;B)在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并找出第一相关性数值大于一第一门坎值下的资源;及C)以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一使用量预估模型以预测在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该使用量预估模型中,以获得在T+1时间点上预测的该主应用程序对先前步骤找出的资源的使用量的增量。
该方法亦可进一步于步骤C)后包含步骤:D)于T+1时间点上增加至少一个节点给主应用程序。
该方法也可进一步于步骤B)后包含步骤B1)及于步骤D)后包含步骤D1):B1)找出第二相关性数值大于一第二门坎值下对应的子应用程序与子应用程序相关资源,并计算前述子应用程序相对于该主应用程序使用子应用程序相关资源的比例值;及D1)于T+1时间点上将该至少一个节点中子应用程序相关资源的使用量依照对应的比例值分派给相关子应用程序。
优选的,该第一门坎值为0.5,该第二门坎值亦为0.5。
在一实施例中,该第一相关性数值的计算方法为以搜集的该主应用程序的每一资源的使用量及该主应用程序的流量计算相似性度量值,其中若该些相似性度量值为负时,取其绝对值。其中该相似性度量值为以夹角余弦方式来计算该主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及该主应用程序的流量在连续三个搜集时间点间的两个变化值形成的向量。
在一实施例中,该第二相关性数值的计算方法包含步骤:以搜集的该主应用程序的每一资源的使用量及各子应用程序的每一资源的使用量,计算该主应用程序与任一子应用程序的单一资源使用量间的相似性度量值、该主应用程序的任两个资源使用量间的相似性度量值,与任两个子应用程序资源使用量间的相似性度量值,其中若该些相似性度量值为负时,取其绝对值,主应用程序或子应用程序的单一资源使用量间的相似性度量值为1;及将主应用程序或单一子应用程序的单一资源使用量的相似性度量值取平均值。其中该相似性度量值为以夹角余弦方式来计算该主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及任一应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量、主应用程序的任两个资源使用量在连续三个搜集时间点间的两个变化值形成的向量,或任两个应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量。
优选的,该使用量预估模型使用机器学习算法,对T时间点以前搜集到的主应用程序对每一资源的使用量进行分析,以预测在T时间以后各时间点该主应用程序对每一资源的使用量。该机器学习算法可为回归分析(Regression Analysis)算法、贝叶斯信念网络(Bayesian Belief Network)算法、基于密度的带噪声应用程序空间聚类(Density-BasedSpatial Clustering of Applications with Noise,DBSCAN)算法、Q学习(Q-learning)算法或多元回归(Poly Regression)算法。
该方法更可进一步于步骤C)后包含步骤C1)及于步骤D1)后包含步骤D2):C1)计算T+1时间点每一子应用程序关于各子应用程序相关资源的重要性权重;及D2)如果于T+1时间点上该至少一个节点中子应用程序相关资源的分派使用量无法满足相关子应用程序的需求,则优先满足重要性权重较大的子应用程序的子应用程序相关资源的需求。其中该重要性权重为T时间点上,任一子应用程序的第二相关性数值与该子应用程序相对于该主应用程序使用子应用程序相关资源的比例值的平均数值。
优选的,该时间序列模型为差分整合移动平均自回归(AutoregressiveIntegrated Moving Average,ARIMA)模型。资源可为中央处理器使用核心数、内存使用量、储存设备使用量或网络带宽使用量。
本发明提出的方法通过分析主应用程序流量、主应用程序资源的各资源使用量及子应用程序资源的各资源使用量间的关系而建立预估模型,进而于未来时间点上预先部署特定资源以满足使用需求。这种跨多层次的分析预测及管理方法不同于仅着眼于个别层面预估与部署资源的现有技术。本发明可以利用更多层面间的互动关系,有效进行预估,进而达到减少应用程序服务运作时的隐藏性成本的优点。
附图说明
图1为本发明的通过多层次相关性建立系统资源预测及资源管理模型的方法实施的硬件架构的示意图。
图2为通过多层次相关性建立系统资源预测及资源管理模型的方法的流程图。
图3为一主应用程序的两个资源的使用量及主应用程序的流量间相似性度量值的计算表。
图4为通过多层次相关性建立系统资源预测及资源管理模型的方法的另一流程图。
图5以矩阵表列一例子中相似性度量值的计算结果。
图6以表列第二相关性数值、比例值及重要性权重的计算结果。
图7为通过多层次相关性建立系统资源预测及资源管理模型的方法的又一流程图。
附图标记说明:10-计算机丛集;20-网络;30-客户端设备;110-第一节点;111-第一CPU核心群;112-第一内存群;120-第二节点;121-第二CPU核心群;122-第二内存群;130-第三节点;131-第三CPU核心群;132-第三内存群;140-第四节点;141-第四CPU核心群;142-第四内存群;150-第五节点;151-第五CPU核心群;152-第五内存群;160-第六节点;161-第六CPU核心群;162-第六内存群;170-第七节点;171-第七CPU核心群;172-第七内存群;200-网络路由器;300-网络交换器;400-磁盘阵列。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域所属技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请见图1,该图为本发明的通过多层次相关性建立系统资源预测及资源管理模型的方法(以下简称本方法)实施的硬件架构的示意图。依照本发明,本方法架设于一计算机丛集10中,用来对同样安装在计算机丛集10的主应用程序,进行资源预测及资源管理的工作,以减少主应用程序面对硬件系统损坏时的风险及隐性成本。在本实施例中,计算机丛集10是一个或多个服务器组成的丛集架构,其架构可以是x86、RISC或ARM。在该计算机丛集10中,可以软件模拟或硬件区分方式形成不同的节点(node)。在本实施例中,节点是用来安装容器的。一个节点在系统软件的规划下,可以占用特定数量的硬件或流量资源使用而不受其它节点的干扰。每一个容器为一个节点,并安装了如Kubernetes容器系统架构部署的一个或多个子应用程序。子应用程序是主应用程序执行特定服务的软件集合,如前面的说明,此处不予赘述。本实施例中包含7个节点(第一节点110、第二节点120、第三节点130、第四节点140、第五节点150、第六节点160及第七节点170,以虚线框表示),每一个节点分配有一个CPU核心群及一个内存群。前者包含一个以上的CPU核心,以斜线方框表示;后者包含一个以上的内存单元,以横线方框表示。为了简化说明,这边假设服务器的硬件规格都相同,而且多个容器节点的CPU和内存规格也都相同。多个容器节点会按节点资源需求共享一个服务器的CPU和内存。
要完成本方法所提出的具体步骤,依靠的是安装于第一节点110的应用软件。在本实施例中,该应用软件的代码及数据储存在计算机丛集10的磁盘阵列400中,当第一节点110中的一第一CPU核心群111在操作系统的指示下,调用磁盘阵列400中的代码及数据来运作,该些代码及数据,连同外部搜集到的相关数据,都会暂存在一第一内存群112中。第一节点110若要向外部(其它节点)搜集数据,可通过一网络交换器300为之。第二节点120、第三节点130与第四节点140分别供给主应用程序下的一第一子应用程序、一第二子应用程序及一第一子应用程序安装及运作。前述的每一个在同一时间点子应用程序会被使用的机会不一定,其预设占据的资源数量也不同。比如,第一子应用程序的运算需求不大但队列数据量大,那第二节点120的一第二CPU核心群121就使用2个CPU核心,第二节点120的第二内存群122就使用8个内存单元;第二子应用程序的运算需求大且队列数据量也大,那第三节点130的一第三CPU核心群131就使用4个CPU核心,第三节点130的第三内存群132使用8个内存单元;第二子应用程序的运算需求小且队列数据量也小,那第四节点140的一第四CPU核心群141就使用2个CPU核心,第四节点140的第四内存群142使用4个内存单元。当外部的客户端设备30(可以是笔记本电脑、平板电脑、台式电脑或智能手机)需要使用子应用程序的服务时,数据连接可以通过网络20接入一网络路由器200,并进一步通过网络交换器300与对应的节点进行互动与数据收发。图1中的第五节点150(包含一第五CPU核心群151及一第五内存群152)、第六节点160(包含一第六CPU核心群161及一第六内存群162)与第七节点170(包含一第七CPU核心群171及一第七内存群172)作为预备使用,会随着实施例的说明而使用到,此处不加以细述。但为求说明方便,该些节点的资源量都固定(4个CPU核心及8个内存单元),实作上也可以不使用定量资源的节点设计。
请见图2,该图为本方法的流程图。本方法的第一个步骤为于一主应用程序部署的多个节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用多个节点中各资源的使用量,并同步计算主应用程序的每一资源使用量对该主应用程序流量的第一相关性数值及每一子应用程序的每一资源使用量对该主应用程序的每一资源使用量的第二相关性数值(S01)。如前所述,主应用程序的三个子应用程序部署在第二节点120到第四节点140中,第一节点110的应用软件便能以一定的时间间隔,比如5秒、30秒、一分钟等,对该些节点内的子应用程序进行流量搜集,从而得到主应用程序的流量;也可以知道子应用程序使用该些节点中各资源的使用量,进而知道主应用程序的各资源的使用量。这里要说明的是,流量是衡量主应用程序占据资源的一个客观标准。流量的定义是每单位时间使用者传送到整个丛集系统的请求信息数量。此外,在本发明中所提及的资源,指的是每个节点或子应用程序实际能够使用硬件的使用量。如前面所述的中央处理器使用核心数与内存使用量。虽然在本实施例中,磁盘阵列400中的储存设备不归于节点或子应用程序所控管,但在其它实施例中,储存设备使用量也可以被设定为资源。同样地,网络路由器200对每个节点或子应用程序所分配的网络带宽使用量也可以算是资源的一种。
在此同时,第一节点110的应用软件便能依照前述搜集的数据,同步计算主应用程序的每一资源使用量对该主应用程序流量的第一相关性数值及每一子应用程序的每一资源使用量对该主应用程序的每一资源使用量的第二相关性数值。第一相关性数值的计算方式为:以搜集的主应用程序的每一资源的使用量及主应用程序的流量计算相似性度量值,其中若该些相似性度量值为负时,取其绝对值。要注意的是,相似性度量值是衡量两个变量之间变动的相依程度,一般会以一个介于-1到1的数据来呈现。-1表示完全负相关,0表示不相关,1表示完全正相关。为了简化分析,负值的部分皆转为正值,从而仅表示不相关(0)到相关(1)间的相似性度量。现有许多统计方法可以计算获得相似性度量值,然而考虑在服务器层面的资源调度应用,本发明采取以下的方法:相似性度量值为以夹角余弦方式来计算主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及主应用程序的流量在连续三个搜集时间点间的两个变化值形成的向量。举例来说,请见图3,该图为一主应用程序的两个资源的使用量及主应用程序的流量间相似性度量值的计算表。在时间点为3秒时,搜集到的主应用程序的流量为8.3Gb/s,主应用程序的CPU核心使用量为6.2个,主应用程序的内存使用量为3.3GB。在时间点为4秒时,搜集到的主应用程序的流量为9.0Gb/s,主应用程序的CPU核心使用量为6.3个,主应用程序的内存使用量为5.3GB。在时间点为5秒时,搜集到的主应用程序的流量为9.5Gb/s,主应用程序的CPU核心使用量为5.8个,主应用程序的内存使用量为7.9GB。3秒与4秒间的流量增量为0.7Gb/s,CPU核心使用量增量为0.1个,内存使用量增量为2GB。4秒与5秒间的流量增量为0.5Gb/s,CPU核心使用量增量为-0.5个,内存使用量增量为2.6GB。因此,主应用程序的CPU核心使用量在连续三个搜集时间点间的两个变化值形成的向量为(0.1,-0.5),主应用程序的内存使用量在连续三个搜集时间点间的两个变化值形成的向量为(2,2.6),主应用程序的流量在连续三个搜集时间点间的两个变化值形成的向量为(0.7,0.5)。夹角余弦的公式为
Figure BDA0002391715720000101
因此可以得到CPU核心的使用量及主应用程序的流量间相似性度量值为-0.41,内存的使用量及主应用程序的流量间相似性度量值为0.96。由于前者为负值,其取绝对值后成为了0.41。也就是说,当主应用程序的流量变动后,内存的使用量的变化率会非常接近主应用程序的流量的变化率,而到CPU核心的使用量的变化率会较主应用程序的流量的变化率来的低得多。
接着,本方法的第二个步骤为在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并找出第一相关性数值大于一第一门坎值下的资源(S02)。T时间点为任何要开始进行下一时间主应用程序流量预测及资源部署的时点,在本实施例中,取时间为第5秒为例子来说明。T+1时间点并不是特指时间为6秒的时点,而是泛指未来特定的一个时间点,比如30秒、20分钟、一个钟头等较短时间,甚至是3天、两星期后的较长时间。当然,如果要对较长时间点后进行预估,步骤S01中的搜集时间要长,数量也要多。这里,时间序列模型采用差分整合移动平均自回归(Autoregressive Integrated Moving Average,ARIMA)模型。本步骤中取第一门坎值的目的在于筛选与主应用程序的流量的变化较敏感的资源,从而可以在有限的硬件(节点)环境中,优先选出影响大的资源与以改变配置。在本实施例中,第一门坎值为0.5,配合以上的计算说明,找出的资源为内存使用量。当然,如果未部署使用的硬件相当多,第一门坎值可以降低,以便让更多种类的资源能够于下一个时间点调整增加。
接着,本方法的第三个步骤为以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一使用量预估模型以预测在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该使用量预估模型中,以获得在T+1时间点上预测的该主应用程序对先前步骤找出的资源的使用量的增量(S03)。在本步骤中,使用量预估模型使用机器学习算法,对T时间点以前搜集到的主应用程序对每一资源的使用量进行分析,以预测在T时间以后各时间点该主应用程序对每一资源的使用量。可以建立使用量预估模型的机器学习算法,比如回归分析(Regression Analysis)算法、贝叶斯信念网络(Bayesian Belief Network)算法、基于密度的带噪声应用程序空间聚类(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)算法、Q学习(Q-learning)算法、多元回归(Poly Regression)算法等。优选的,可以使用两种以上的机器学习算法交互进行,以取得更贴近未来资源使用量的使用量预估模型。在后文中其它实施例提到的使用量预估模型,也和本实施例中一样。至此,可由T+1时间点的主应用程序预测的流量,推出内存使用量的增量。
最后,本方法的第四个步骤为于T+1时间点上增加至少一个节点给主应用程序(S04)。本步骤为自动设定增加节点而不需人工调整,可以将第五节点150及其所属的第五CPU核心群151及第五内存群152分给主应用程序使用,至于具体分给哪一个子应用程序,在此不予限制。然而,本方法也可以只进行到第三步骤,让管理人员手动来增加节点。
前述的实施例仅在推估主应用程序的流量以及挑选出对主应用程序较有影响的资源来进行节点的分布,以下的实施例将进一步公开要如何将节点资源分配到子应用程序上。
请见图4,该图为通过多层次相关性建立系统资源预测及资源管理模型的方法的另一个流程图。和图2相比,本实施中的方法多了两个步骤:于步骤S02后包含步骤S021及于步骤S04后包含步骤S041。步骤S021为找出第二相关性数值大于一第二门坎值下对应的子应用程序与子应用程序相关资源,并计算前述子应用程序相对于该主应用程序使用子应用程序相关资源的比例值(以下简称比例值)。步骤S041为于T+1时间点上将该至少一个节点中子应用程序相关资源的使用量依照对应的比例值分派给相关子应用程序。这里,子应用程序相关资源特指第二相关性数值大于第二门坎值下对应的子应用程序所使用的资源。子应用程序所使用的资源不一定都在计算第二相关性数值时会大于第二门坎值。如果子应用程序的CPU核心使用量计算的第二相关性数值大于第二门坎值而内存使用量的第二相关性数值小于第二门坎值,那么只有CPU核心使用量会被用来进行T+1时间点上的分派。此外,第二相关性数值包含了两个步骤:第一步骤为以搜集的该主应用程序的每一资源的使用量及各子应用程序的每一资源的使用量,计算该主应用程序与任一子应用程序的单一资源使用量间的相似性度量值、该主应用程序的任两个资源使用量间的相似性度量值,与任两个子应用程序资源使用量间的相似性度量值,其中若该些相似性度量值为负时,取其绝对值,主应用程序或子应用程序的单一资源使用量间的相似性度量值为1;第一步骤为将主应用程序或单一子应用程序的单一资源使用量的相似性度量值取平均值。和第一相关性数值计算相似,第二相关性数值中的相似性度量值为以夹角余弦方式来计算两个向量。但两个向量分别为主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及任一应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量、主应用程序的任两个资源使用量在连续三个搜集时间点间的两个变化值形成的向量,或任两个应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量。此处省略计算过程,兹将某一例子中相似性度量值的计算结果以矩阵表列于图5。图5中相同的应用程序的特定资源使用量在交会处的值为1,因为其为完全相关。整体来说,图5中的矩阵为一个对称矩阵。以第三列(黑点背景)为例来说明矩阵中数值的意义。主应用程序的内存使用量与主应用程序的CPU核心使用量间的相似性度量值为0.49,主应用程序的内存使用量与本身的相似性度量值为1,主应用程序的内存使用量与第一子应用程序的CPU核心使用量间的相似性度量值为0.66,主应用程序的内存使用量与第一子应用程序的内存使用量间的相似性度量值为-0.99(取绝对值后为0.99),主应用程序的内存使用量与第二子应用程序的CPU核心使用量间的相似性度量值为0.41,主应用程序的内存使用量与第二子应用程序的内存使用量间的相似性度量值为0.96,主应用程序的内存使用量与第三子应用程序的CPU核心使用量间的相似性度量值为-0.68(取绝对值后为0.68),主应用程序的内存使用量与第三子应用程序的内存使用量间的相似性度量值为0.86。将主应用程序或单一子应用程序的单一资源使用量的相似性度量值取平均值的结果如下(请见图6):主应用程序的CPU核心使用量的第二相关性数值为0.74,主应用程序的内存使用量的第二相关性数值为0.76,第一子应用程序的CPU核心使用量的第二相关性数值为0.82,第一子应用程序的内存使用量的第二相关性数值为0.70,第二子应用程序的CPU核心使用量的第二相关性数值为0.70,第二子应用程序的内存使用量的第二相关性数值为0.60,第三子应用程序的CPU核心使用量的第二相关性数值为0.82,第三子应用程序的内存使用量的第二相关性数值为0.86。取第二门坎值为0.5,所有的应用程序各资源皆使用量满足步骤S021前半段的要求,但是必须得移除被步骤S02剔除的资源。
步骤S021中的比例值是利用T时间点前搜集的数据,找出一个代表子应用程序相对于该主应用程序使用子应用程序相关资源的比例,比如第一子应用程序相对于主应用程序使用内存的比例。如此,各子应用程序相对于主应用程序使用特定子应用程序相关资源的比例值之和会为1。图6显示各个子应用程序相对于主应用程序使用特定子应用程序相关资源的比例值。比例值的计算可以是各搜集时间点上计算结果的平均值,数值越大表示该子应用程序对特定子应用程序相关资源的使用量也大。
步骤S041是在T+1时间点上对各子应用程序分派步骤S04取得的节点中的各资源。如果在步骤S02中CPU核心使用量及内存使用量都是第一相关性数值大于一第一门坎值下的资源,那么图1中第五节点150、第六节点160及第七节点170的硬件都可以被用来分派。以CPU核心使用量来看,如果步骤S03中计算出来的使用量的增量为两个节点,第五节点150与第六节点中的第五CPU核心群151与第六CPU核心群161的8个CPU核心便能在T+1时间点上分派给各子应用程序(第七节点170的第七CPU核心群171预留给下一时间点)。依照图6的数据,第一子应用程序分派到3.76个CPU核心使用量,第二子应用程序分派到1.76个CPU核心使用量,第三子应用程序分派到2.48个CPU核心使用量,同样的方法可应用在内存使用量的分派上。当然,还有更简洁的分派方式:直接对一个子应用程序分派一个复本所需的资源数量,也就是直接加一套该子应用程序。由于每个子应用程序使用的资源总量不见得是一个节点的资源总量,在分派前要特别注意。
如上所述,各种分派资源的结果都是在资源足够的情形下产生。对于预留的节点不够或者分派给主应用程序的节点资源不足以满足特定子应用程序的需求时,需要一种决定资源分配的机制。在此情况下,图4的流程中可进一步于步骤S03后包含步骤S031及于步骤S041后包含步骤S042。步骤S031为计算T+1时间点每一子应用程序关于各子应用程序相关资源的重要性权重,步骤S042为如果于T+1时间点上该至少一个节点中子应用程序相关资源的分派使用量无法满足相关子应用程序的需求,则优先满足重要性权重较大的子应用程序的子应用程序相关资源的需求。重要性权重为T时间点上,任一子应用程序的第二相关性数值与该子应用程序相对于该主应用程序使用子应用程序相关资源的比例值的平均数值。为了对重要性权重的计算有较佳理解,请复见图6。图6中各子应用程序相关资源的重要性权重为其左边两个域值的平均。重要性权重的意义在于显示T+1时间点上每一个子应用程序的子应用程序相关资源出现预估及被使用量的可能性大小。对主应用程序来说,重要性权重大的子应用程序的子应用程序相关资源要优先被满足,以免主应用程序发生系统性的错误。如图6所示,如果在T+1时间点上CPU核心的使用量不够了,第一子应用程序的CPU核心使用量要优先被满足(重要性权重为0.64),其次是第三应用程序的CPU核心使用量(重要性权重为0.57),第二子应用程序的CPU核心使用量可能会不够,从而造成第二子应用程序的效能变差。
以上是考虑三个层面,主应用程序流量、主应用程序资源使用量及子应用程序资源使用量的三层相关性建立系统资源预测及资源管理模型的方法。也就是依照主应用程序流量分派节点给主应用程序,再进一步将节点中的资源分派给子应用程序。然而,依照本发明的精神,也可以在知道主应用程序流量的情况下,直接分派资源给子应用程序。相关的作业流程请见图7。
图7中,第一个步骤为于一主应用程序部署的节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用节点中各资源的使用量(S11),第二个步骤为在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并计算每个子应用程序相对于该主应用程序使用节点中各资源的比例值(S12)。同前所述,该时间序列模型为差分整合移动平均自回归模型,其使用目的亦相同。第三个步骤为以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一预估模型以计算在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该模型中,以获得在T+1时间点上预测的该主应用程序对每一资源的使用量(S13)。第四步骤为将T+1时间点上预测的该主应用程序对每一资源的使用量依照对应的比例值分派给每一子应用程序(S14)。很明显,这种分配的方法是在建立主应用程序流量与子应用程序使用节点中各资源的使用量的关系后,从而通过预估结果直接对子应用程序分派资源的使用量。
以上实施例虽然以容器为例子,但实作上,相同的方式也可以应用在虚拟机,甚至通过虚拟机去建立每个容器的系统资源预测及资源管理模型。
尽管以上已经示出和描述了本发明的实施例,对于本领域所属技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其均等物限定。

Claims (16)

1.一种通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,包含步骤:
A)于一主应用程序部署的节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用节点中各资源的使用量;
B)在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并计算每个子应用程序相对于该主应用程序使用节点中各资源的比例值;
C)以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一预估模型以计算在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该模型中,以获得在T+1时间点上预测的该主应用程序对每一资源的使用量;及
D)将T+1时间点上预测的该主应用程序对每一资源的使用量依照对应的比例值分派给每一子应用程序。
2.一种通过多层次相关性建立系统资源预测及管理模型的方法,包含步骤:
A)于一主应用程序部署的多个节点中定时搜集该主应用程序的流量及该主应用程序及其多个子应用程序使用多个节点中各资源的使用量,并同步计算主应用程序的每一资源使用量对该主应用程序流量的第一相关性数值及每一子应用程序的每一资源使用量对该主应用程序的每一资源使用量的第二相关性数值;
B)在T时间点以一时间序列模型预测未来T+1时间点的该主应用程序的流量,并找出第一相关性数值大于一第一门坎值下的资源;及
C)以T时间点以前搜集到的主应用程序对每一资源的使用量,建立一使用量预估模型以预测在T时间以后各时间点该主应用程序对每一资源的使用量,并将T+1时间点的该主应用程序预测的流量代入该使用量预估模型中,以获得在T+1时间点上预测的该主应用程序对先前步骤找出的资源的使用量的增量。
3.如权利要求2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,进一步于步骤C)后包含步骤:D)于T+1时间点上增加至少一个节点给主应用程序。
4.如权利要求3所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,进一步于步骤B)后包含步骤B1)及于步骤D)后包含步骤D1):
B1)找出第二相关性数值大于一第二门坎值下对应的子应用程序与子应用程序相关资源,并计算前述子应用程序相对于该主应用程序使用子应用程序相关资源的比例值;及
D1)于T+1时间点上将该至少一个节点中子应用程序相关资源的使用量依照对应的比例值分派给相关子应用程序。
5.如权利要求2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该第一门坎值为0.5。
6.如权利要求4所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该第二门坎值为0.5。
7.如权利要求2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其中该第一相关性数值的计算方法为以搜集的该主应用程序的每一资源的使用量及该主应用程序的流量计算相似性度量值,其中若该些相似性度量值为负时,取其绝对值。
8.如权利要求7所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该相似性度量值为以夹角余弦方式来计算该主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及该主应用程序的流量在连续三个搜集时间点间的两个变化值形成的向量。
9.如权利要求4所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该第二相关性数值的计算方法包含步骤:
以搜集的该主应用程序的每一资源的使用量及各子应用程序的每一资源的使用量,计算该主应用程序与任一子应用程序的单一资源使用量间的相似性度量值、该主应用程序的任两个资源使用量间的相似性度量值,与任两个子应用程序资源使用量间的相似性度量值,其中若该些相似性度量值为负时,取其绝对值,主应用程序或子应用程序的单一资源使用量间的相似性度量值为1;及
将主应用程序或单一子应用程序的单一资源使用量的相似性度量值取平均值。
10.如权利要求9所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该相似性度量值为以夹角余弦方式来计算该主应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量及任一应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量、主应用程序的任两个资源使用量在连续三个搜集时间点间的两个变化值形成的向量,或任两个应用程序的单一资源使用量在连续三个搜集时间点间的两个变化值形成的向量。
11.如权利要求2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该使用量预估模型使用机器学习算法,对T时间点以前搜集到的主应用程序对每一资源的使用量进行分析,以预测在T时间以后各时间点该主应用程序对每一资源的使用量。
12.如权利要求11所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该机器学习算法为回归分析算法、贝叶斯信念网络算法、基于密度的带噪声应用程序空间聚类算法、Q学习算法或多元回归算法。
13.如权利要求4所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,进一步于步骤C)后包含步骤C1)及于步骤D1)后包含步骤D2):
C1)计算T+1时间点每一子应用程序关于各子应用程序相关资源的重要性权重;及
D2)如果于T+1时间点上该至少一个节点中子应用程序相关资源的分派使用量无法满足相关子应用程序的需求,则优先满足重要性权重较大的子应用程序的子应用程序相关资源的需求。
14.如权利要求13所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该重要性权重为T时间点上,任一子应用程序的第二相关性数值与该子应用程序相对于该主应用程序使用子应用程序相关资源的比例值的平均数值。
15.如权利要求1或2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,该时间序列模型为差分整合移动平均自回归模型。
16.如权利要求1或2所述的通过多层次相关性建立系统资源预测及管理模型的方法,其特征在于,资源为中央处理器使用核心数、内存使用量、储存设备使用量或网络带宽使用量。
CN202010116728.6A 2020-02-25 2020-02-25 通过多层次相关性建立系统资源预测及管理模型的方法 Active CN113377521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010116728.6A CN113377521B (zh) 2020-02-25 2020-02-25 通过多层次相关性建立系统资源预测及管理模型的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010116728.6A CN113377521B (zh) 2020-02-25 2020-02-25 通过多层次相关性建立系统资源预测及管理模型的方法

Publications (2)

Publication Number Publication Date
CN113377521A true CN113377521A (zh) 2021-09-10
CN113377521B CN113377521B (zh) 2024-01-30

Family

ID=77569283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010116728.6A Active CN113377521B (zh) 2020-02-25 2020-02-25 通过多层次相关性建立系统资源预测及管理模型的方法

Country Status (1)

Country Link
CN (1) CN113377521B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244601A1 (en) * 2007-03-27 2008-10-02 Symantec Corporation Method and apparatus for allocating resources among backup tasks in a data backup system
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法
US20170212930A1 (en) * 2016-01-21 2017-07-27 Linkedin Corporation Hybrid architecture for processing graph-based queries
CN107147517A (zh) * 2017-03-24 2017-09-08 上海交通大学 一种针对虚拟网络功能的自适应计算资源分配方法
CN107291539A (zh) * 2017-06-19 2017-10-24 山东师范大学 基于资源重要程度的集群程序调度方法
CN108845874A (zh) * 2018-06-25 2018-11-20 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器
US20190213099A1 (en) * 2018-01-05 2019-07-11 NEC Laboratories Europe GmbH Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244601A1 (en) * 2007-03-27 2008-10-02 Symantec Corporation Method and apparatus for allocating resources among backup tasks in a data backup system
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法
US20170212930A1 (en) * 2016-01-21 2017-07-27 Linkedin Corporation Hybrid architecture for processing graph-based queries
CN107147517A (zh) * 2017-03-24 2017-09-08 上海交通大学 一种针对虚拟网络功能的自适应计算资源分配方法
CN107291539A (zh) * 2017-06-19 2017-10-24 山东师范大学 基于资源重要程度的集群程序调度方法
US20190213099A1 (en) * 2018-01-05 2019-07-11 NEC Laboratories Europe GmbH Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection
CN108845874A (zh) * 2018-06-25 2018-11-20 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器

Also Published As

Publication number Publication date
CN113377521B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US11579933B2 (en) Method for establishing system resource prediction and resource management model through multi-layer correlations
US11656915B2 (en) Virtual systems management
Ismaeel et al. Proactive dynamic virtual-machine consolidation for energy conservation in cloud data centres
US8380960B2 (en) Data allocation and replication across distributed storage system
US9552231B2 (en) Client classification-based dynamic allocation of computing infrastructure resources
US11726836B2 (en) Predicting expansion failures and defragmenting cluster resources
US10419437B2 (en) Quasi-agentless cloud resource management
US20090070771A1 (en) Method and system for evaluating virtualized environments
US8433675B2 (en) Optimization and staging
CN113900767A (zh) 监测集群和实施自动缩放策略的容器即服务控制器
CN112685170A (zh) 备份策略的动态优化
CN113110914A (zh) 一种基于微服务架构的物联网平台构建方法
Wang et al. Lube: Mitigating bottlenecks in wide area data analytics
Xue et al. Managing data center tickets: Prediction and active sizing
CN115297112A (zh) 一种基于Kubernetes的动态资源配额及调度组件
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
Raouf et al. A predictive multi-tenant database migration and replication in the cloud environment
CN110971468B (zh) 一种基于脏页预测的延迟拷贝增量式容器检查点处理方法
WO2021127640A1 (en) Modeling cloud inefficiencies using domain-specific templates
CN113377521B (zh) 通过多层次相关性建立系统资源预测及管理模型的方法
Handaoui et al. Salamander: a holistic scheduling of mapreduce jobs on ephemeral cloud resources
Martinez-Julia et al. Explained intelligent management decisions in virtual networks and network slices
De Grande et al. Measuring and analyzing migration delay for the computational load balancing of distributed virtual simulations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059748

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant