CN110301128A - 基于学习的资源管理数据中心云架构 - Google Patents
基于学习的资源管理数据中心云架构 Download PDFInfo
- Publication number
- CN110301128A CN110301128A CN201880012497.5A CN201880012497A CN110301128A CN 110301128 A CN110301128 A CN 110301128A CN 201880012497 A CN201880012497 A CN 201880012497A CN 110301128 A CN110301128 A CN 110301128A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- cloud
- service
- achievement data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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 performance assessment
- G06F11/3433—Recording 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 performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了一种用于在所述云中分配资源的移动设备、计算机可读介质和方法。所述方法包括以下步骤:接收与一个或多个任务关联的指标数据;根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;接收为处理数据集指定第一任务的请求;根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;以及将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。所述指标数据由多个认知代理收集,并通过认知引擎服务与部署在所述云中的多个认知代理进行通信来接收。
Description
相关申请案交叉申请
本申请要求于2017年3月2日递交的发明名称为“基于学习的资源管理”的第15/448,451号美国非临时专利申请案以及于2018年2月22日递交的发明名称为“基于学习的资源管理数据中心云架构”的第PCT/CN2018/076978号国际专利申请案的在先申请优先权和权益,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及用于管理数据中心资源的云架构,更具体地说,涉及在所述云架构中实现的基于学习的资源管理。
背景技术
“云”是一种抽象概念,其涉及网络上的资源管理,更具体地说,涉及一种数据中心架构,它提供一种可以通过网络交付服务的平台。例如,所述云可以指通过互联网交付的各种服务,例如基于网络的存储服务或计算服务。典型的云架构部署包括一种分层的层次结构,其中包括网络硬件的物理层,以及一个或多个软件层,所述软件层使用户能够访问所述网络硬件。例如,一种常见的云架构部署包括网络资源的物理层(例如服务器、存储设备阵列、网络交换机等),同时还有一个多层式分层软件框架,其中包括实现基础设施即服务(Infrastructure as a Service,简称IaaS)的第一层、实施平台即服务(Platform as aService,简称PaaS)的第二层和实施软件即服务(Software as a Service,简称SaaS)的第三层。通常,虽然可能存在例外情况,但第三层的资源依赖于第二层的资源,第二层的资源依赖于第一层的资源,第一层的资源依赖于物理层的资源。
在传统云架构中,物理层的资源可以分配给在第一层实现的服务(即,IaaS服务)。例如,第一层的资源管理器可用于将物理层中的资源分配给第一层中运行的不同IaaS服务。IaaS服务的示例包括Elastic Compute Cloud(EC2)平台和SimpleStorage Service(S3)存储平台。在Elastic Compute Cloud(EC2)平台上,客户端能够在所述云的物理层保留一个或多个节点以执行某些计算或运行应用;Simple Storage Service(S3)存储平台在一个或多个数据中心中提供基于云的存储。IaaS服务的每个实例也可以包括资源管理器,该资源管理器从第一层的资源管理器请求资源来实现该服务并管理该服务中分配的资源。
反之,第一层中的资源(即,IaaS服务)也可以分配给第二层中实现的服务(即,PaaS服务)。例如,第二层的资源管理器可用于将第一层中的资源分配给第二层中运行的不同PaaS服务。PaaS服务的示例包括Azure App Service平台和Heroku平台。在Azure App Service平台上,客户端能够构建在Microsoft云基础设施上运行的应用;在Heroku平台上,客户端能够构建在IaaS服务上运行的应用。PaaS服务通常提供管理基础设施资源的容器,以使所述云中运行的应用可以轻松扩展,而无需开发者管理这些资源。同样,还可以在PaaS层同时运行多个PaaS服务,每个PaaS服务都包括独立且不同的资源管理器,该资源管理器依赖于所述PaaS层的资源管理器,其用于请求运行所述PaaS服务的资源。
第二层中的资源(即,PaaS服务)可以分配给第三层中实现的服务(即,SaaS服务)。例如,第三层的资源管理器可用于将第二层的资源分配给第三层中运行的不同SaaS服务。SaaS服务的示例包括Salesforce(即,客户关系软件)、Microsoft Office 365、GoogleApps、Dropbox等。第三层中的每个SaaS服务可以从第二层中的PaaS服务请求资源以运行所述应用。反之,所述PaaS服务也可以从第一层中的IaaS服务请求资源来运行所述应用所依赖的平台,并且所述IaaS服务可以请求将所述云的一个或多个数据中心中的物理层中的特定资源子集分配为运行所述平台的基础设施。
如前所述,所述云架构的每个分层都依赖于其下面的分层来分配资源。所述云中的资源在先到先服务的基础上垂直划分,其中每个资源管理器只将分配给该资源管理器的资源分配给与该资源管理器对应的依赖服务。此外,所述云的资源池可以水平划分为不同的集群,例如,将所述云的物理层中的总资源划分为按数据中心或可用性区域划分的单个集群。因此,在特定集群中实现的每个服务只能访问分配给该集群的资源,这可能是所述云中包含的资源的子集。
因此,在此类架构中分配资源的效率通常不高。例如,对于一个集群中的特定应用(即SaaS),当许多用户使用所述特定应用时,其资源利用率很高,速度会减慢,因为该应用只能在分配给该集群的资源上运行,但是对于另一个集群中的另一个应用,当只有少数用户使用所述特定应用时,其资源利用率很低。将物理层中的资源分配给所述两个不同集群的第一层中的资源管理器可能无法查看每个集群上运行的不同应用的资源利用率,因此,物理层的资源的使用效率可能很低。
此外,每项服务可以针对特定平台或基于云的基础设施进行设计。例如,一个SaaS服务的资源管理器可以设计为利用所述Heroku平台,而另一个SaaS服务的资源管理器可以针对所述Azure App Service平台设计。将所述服务从一个平台迁移到另一个平台可能需要大量的工作,因为程序员需要开发兼容的资源管理器才能使所述服务在不同的平台上运行。此外,某些云架构可具有不同的层,例如CaaS/SaaS云架构或甚至无服务器架构(例如,AWS Lambda)。
一般来说,很难将为特定云架构构建的服务迁移到另一个云架构,因为为一个架构设计的服务可能依赖于从其它服务接收分配的资源,而这些资源在其它架构中可能不可用。此外,资源管理通常仅限于从具有特定资源池访问权限的“父”资源管理器请求分配给所述服务的资源。这种类型的资源管理可能导致所述云中可用资源的分配效率低下。
发明内容
提供了一种用于在所述云中分配资源的移动设备、计算机可读介质和方法。所述方法包括以下步骤:接收与一个或多个任务关联的指标数据;根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;接收为处理数据集指定第一任务的请求;根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;以及将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。所述指标数据由多个认知代理收集,并通过认知引擎服务与部署在所述云中的多个认知代理进行通信来接收。
在第一实施例中,所述一个或多个模型中的每个模型实现机器学习算法。
在第二实施例中(可以与所述第一实施例结合,也可以不结合),所述机器学习算法是回归算法。
在第三实施例中(可以与所述第一和/或第二实施例结合,也可以不结合),所述模板包括客户标识和任务标识。所述模板用于从所述一个或多个型号中选择所述第一型号。
在第四实施例中(可以与所述第一、第二和/或第三实施例结合,也可以不结合),所述指标数据包括处理器利用率指标、存储器利用率指标、网络带宽利用率指标和执行所述任务所用时间中的至少一个。所述认知引擎服务用于基于所述指标数据计算与所述一个或多个任务中的每个任务对应的分数。
在第五实施例中(可以与所述第一、第二、第三和/或第四实施例结合,也可以不结合),所述方法还包括以下步骤:将为所述一个或多个任务计算的分数与相应的模板相关联。
在第六实施例中(可以与第一、第二、第三、第四和/或第五实施例结合,也可以不结合),所述云包括一个或多个数据中心中的多个节点。所述多个节点中的每个节点通过一个或多个网络与所述多个节点中的至少一个其它节点通信。
在第七实施例中(可以与所述第一、第二、第三、第四、第五和/或第六实施例结合,也可以不结合),所述多个节点中的每个节点包括存储在存储器中并由所述节点的一个或多个处理器执行的认知代理。
为此,在一些可选实施例中,上述装置、系统和/或方法的上述特征中的一个或多个可提供认知引擎服务,所述认知引擎服务与部署在所述云中的多个认知代理进行通信,进而,所述多个认知代理使所述认知引擎服务能够收集用于机器学习算法的数据以协助资源分配。应该注意的是,前述的潜在优点仅出于说明的目的而进行阐述,并且不应被解释为以任何方式进行限制。
附图说明
图1A和图1B示出了根据现有技术实施云的基础设施;
图2是根据现有技术的云架构概念图;
图3是根据一个实施例的云架构概念图;
图4示出了根据一个实施例的认知引擎服务;
图5是根据一个实施例确定分配给任务的资源单元的数量的方法的流程图;
图6是根据一个实施例的用于训练模型的方法的流程图;
图7A是根据另一实施例的用于确定待分配到任务的最佳数量的资源单元的方法的流程图;
图7B是根据一个实施例的用于分配待分配的最佳数量的资源单元的方法的流程图;
图8示出了可以实施所述各种先前实施例的各种架构和/或功能的示例性系统。
具体实施方式
传统上,云架构中的资源分配基于资源依赖方案实施,其中所述云中的每个资源管理器从父资源管理器请求资源。在这类云架构中,可以在所述云中部署数百或数千项服务时实现数百或数千个资源管理器。这种由依赖资源管理器组成的大型网络的设计目的并不是用于通信,因此,在这种由资源管理器组成的多层网络中分配资源很可能会变得效率低下。
所述资源分配问题的一个可能方案是从分布式、多层资源依赖方案过渡到物理上散但逻辑上集中的资源分配方案。在此方案中,部署在所述云中的每个资源管理器都是依赖于统一资源管理器的代理。所述统一资源管理器的任务是在所述多个资源代理中分配资源单元,从而使所述统一资源管理器能够在所述云中部署的所有服务中有效地分配资源单元。但是,随着网络的增长和服务数量的增加,确定有效的资源分配计划变得越来越困难。所述统一资源管理器可以利用机器学习来协助制定资源分配计划。
图1A和图1B示出了根据现有技术实施云100的基础设施。此处所述的云100是指位于一个或多个数据中心(即,物理位置)中的硬件资源(计算、存储和网络)集,以及在整个网络(例如互联网)上实现一组服务的软件框架。如图1A所示,所述云100包括多个数据中心110,所述多个数据中心110中的每个数据中心110包括一个或多个资源池120。所述资源池120包括存储层122、计算层124和网络层126。
如图1B所示,所述存储层122包括在所述云100中存储指令和/或数据的物理资源。所述存储层122包括多个存储区域网络(storage area network,简称SAN)152,每个SAN152提供对一个或多个块级存储设备的访问。在一个实施例中,SAN 152包括一个或多个通过网络访问的非易失性存储设备。非易失性存储设备的示例包括但不限于硬盘驱动器(hard disk drive,简称HDD)、固态驱动器(solid state drive,简称SSD)、闪存(例如,EEPROM或闪存(Compact Flash,简称CF)卡)等。在另一实施例中,SAN 152是RAID(独立磁盘冗余阵列)存储阵列,所述RAID存储阵列将多个物理磁盘驱动器组件(例如,多个类似HDD)组合成单个逻辑存储单元。在又一实施例中,SAN 152是虚拟存储资源,其向所述物理存储资源提供抽象级别,使得虚拟块地址可用于参考存储在一个或多个物理非易失性存储设备上的一个或多个对应的存储器块中的数据。在此类实施例中,所述存储层122可以包括在一个或多个处理器上执行的软件框架,用于实现虚拟存储资源。
所述计算层124包括在所述云100中执行流程的物理资源(例如,指令集)。所述计算层124可包括多个计算规模单位(compute scale unit,简称CSU)154,每个CSU 154包括至少一个处理器和用于使用所述至少一个处理器的软件框架。在一个实施例中,CSU 154包括一台或多台服务器(例如,刀片服务器),所述服务器提供执行指令集的物理硬件。每个服务器可以包括一个或多个处理器(例如,CPU、GPU、ASIC、FPGA、DSP等)以及用于存储待由所述一个或多个处理器处理的指令和/或数据的易失性存储器。所述CSU 154还可以包括加载到所述易失性存储器中并由所述一个或多个处理器执行的操作系统,所述操作系统为待在所述服务器的硬件资源上执行的各种进程提供运行时环境。在另一实施例中,CSU 154是一种虚拟机,其提供模拟服务器硬件资源的虚拟资源集合。所述计算层124可包括虚拟机监控程序或虚拟机监控器,其使得许多虚拟机能够在单个服务器上基本上同时执行。
所述网络层126包括实施网络的物理资源。在一个实施例中,所述网络层126包括若干交换机和/或路由器,所述交换机和/或路由器能够在所述云100中的不同资源之间传输数据。例如,所述计算层124中的每个服务器可包括耦合到网络接口(例如,以太网)的网络接口控制器(network interface controller,简称NIC)。所述接口可以耦合到网络交换机,所述网络交换机能将数据从该服务器发送到连接到所述网络交换机的另一台服务器。所述网络层126可以实现所述OSI模型的若干层,包括所述数据链路层(即,第2层)、所述网络层(即,第3层)和所述传输层(即,第4层)。在一个实施例中,所述网络层126实现虚拟化层,所述虚拟化层能够实现在所述物理网络中建立虚拟网络。在此类实施例中,所述网络层126中的每个NU 156是虚拟专用网络(virtual private network,简称VPN)。
应当理解的是,所述多个数据中心中的每个数据中心110可以包括不同的硬件资源集,因此包括不同数量的资源池120。此外,一些资源池120可以不包括所述存储层122、所述计算层124和/或网络层126中的一个或多个。例如,一个资源池120可仅包含所述计算层124中的一组服务器。另一个资源池120可以同时包含计算层124和网络层126,但没有所述存储层122。
图2是根据现有技术的云架构200概念图。如图2所示,所述云架构200表示为多个分层。所述云架构200包括物理层202、基础设施即服务(Infrastructure as a Service,简称IaaS)层204、平台即服务(Platform as a Service,简称PaaS)层206和软件即服务(Software as a Service,简称SaaS)层208。物理层202是实施所述云的硬件资源的集合。在一个实施例中,物理层202如图1A和图1B所示实现。
所述IaaS层204是软件框架,所述软件框架能将物理层202的资源分配给不同的基础设施服务。在一个实施例中,所述IaaS层204包括资源管理器,其用于将物理层202的资源池120中的资源单元(例如,SAN 152、CSU 154和NU 156)分配到所述IaaS层204中实现的服务。如图2所示,对象存储服务(Object Storage Service,简称OBS)212等服务可以在所述IaaS层204中实现。所述OBS 212是针对非结构化数据的云存储服务,其使客户端能够将数据存储在物理层202中的一个或多个资源池120中的所述存储层122。所述OBS 212可以管理数据存储的位置(即,位于哪个数据中心中、哪个物理驱动器上等)以及数据存储的方法(例如,N个方法复制的数据等)。
所述IaaS层204中的每项服务可包括单独的资源管理器,其用于管理分配给所述服务的资源。如图2所示,特定服务中的黑点表示该服务的资源管理器,箭头表示所述服务的资源管理器向父资源管理器发出的资源请求。在所述OBS 212的情况下,所述OBS 212中的资源管理器向所述IaaS层204的资源管理器请求资源。同样,所述IaaS层204的资源管理器管理来自物理层202的资源。
所述OBS 212只是所述IaaS层204中实现的服务的一个示例,所述IaaS层204可包括所述OBS 212以外的或替代所述OBS 212的其它服务。此外,所述IaaS层204可包括同一服务的多个实例,例如所述OBS 212的多个实例,每个实例都具有面向不同客户端的接口,使得可以为多个租户提供不同的服务。
所述分层结构中的下一层是所述PaaS层206。所述PaaS层206提供实现一个或多个平台服务的框架。例如,如图2所示,所述PaaS层206可包括Spark集群服务222和Hadoop集群服务224的实例。所述Spark集群服务222实现ApacheTM 平台的实例,其包括用于处理分布式系统上的数据的软件库。所述Hadoop集群服务224实现ApacheTM 平台的实例,其也包括用于处理分布式系统上的数据的软件库。同样,所述Spark集群服务222和所述Hadoop集群服务224只是在所述PaaS层206中实现的平台服务的示例,并且所述PaaS层206可包括除所述Spark集群服务222和所述Hadoop集群服务224之外的或替代所述Spark集群服务222和所述Hadoop集群服务224的其它服务。
所述PaaS层206中的平台服务,例如所述Spark集群服务222和所述Hadoop集群服务224,每个包括资源管理器的实例。所述Spark集群服务222和所述Hadoop集群服务224两者均可利用Apache YARN资源管理器。这些资源管理器可以从所述PaaS层206的父资源管理器请求资源。所述PaaS层206的资源管理器管理由所述IaaS层204中的资源管理器分配给所述PaaS层206的所述IaaS层204中的资源。
所述分层结构中的顶层是所述SaaS层208。所述SaaS层208可以提供实现一个或多个软件服务的框架。例如,如图2所示,所述SaaS层208可包括数据加工服务(Data CraftService,简称DCS)232和数据接入服务(Data Ingestion Service,简称DIS)234的实例。所述DCS服务232实现用于处理数据的应用,例如传输或转换数据。所述DIS服务234实现用于采集数据的应用,例如从各种不同来源收集数据以及以各种不同格式收集数据并处理待以一种或多种不同格式存储的数据。同样,所述DCS服务232和所述DIS服务234只是在所述SaaS层208中实现的应用服务的示例,并且所述SaaS层208可以包括所述DCS服务232和所述DIS服务234之外的或替代所述DCS服务232和所述DIS服务234的其它服务。
所述DCS服务232和所述DIS服务234均包括资源管理器的实例。这些资源管理器可以从所述SaaS层208的父资源管理器请求资源。所述SaaS层208的资源管理器管理由所述PaaS层206的资源管理器分配给所述SaaS层208的资源。
应当理解的是,所述云架构200中的每个资源管理器与请求资源单元的相应父资源管理器相关联,这种情况可以在本文称为资源依赖。当所述资源依赖跨越层时,描述所述资源依赖的箭头可能存在如图2所示的例外,例如,所述Spark集群服务222可以直接从所述IaaS层204的资源管理器而不是从所述PaaS层206的资源管理器请求资源。然而,在这种资源依赖方案中,没有一个资源管理器能够查看部署在所述云中的每个资源单元。因此,没有一个资源管理器能够根据所述云中每个资源单元的利用率,有效管理不同服务之间的资源单元分配。
应当理解的是,图2所示的云架构200只是在传统云中实现的一种架构框架。但是,其它云架构可实现不同的框架。例如,云架构可包括所述IaaS层204和所述SaaS层208,无需任何干预的PaaS层206。在另一示例中,云架构可包括容器即服务(Container as aService,简称CaaS)层(即,没有IaaS和PaaS的资源虚拟化的新方式)以及所述CaaS层顶部的SaaS层。在每种实例中,这些云架构采用使用资源依赖方案来请求在其上运行所述服务的资源。
图3是根据一个实施例的云架构300概念图。如图3所示,云架构300表示为多个分层,类似于图2所示的云架构200。所述分层可包括物理层302、IaaS层304、PaaS层306和SaaS层308。所述IaaS层304可包括各种基础设施服务的实例,例如所述OBS 212;所述PaaS层306可包括各种平台服务的实例,例如所述Spark集群服务222和所述Hadoop集群服务224;以及所述SaaS层308可包括各种应用服务的实例,例如所述DCS服务232和所述DIS服务234。同样,每层中实现的服务类型或数量可能因所述云中特定的服务部署而有所不同。
图3所示的云架构300与图2所示的云架构200的不同之处在于用于资源分配的方案不基于资源依赖。相反,图3所示的云架构300包括统一资源管理器310,所述统一资源管理器310将资源单元分配给部署在所述云中的每一层或服务。所述云中的每层都包含资源代理312。在一个实施例中,所述资源代理312是一种用于管理分配给该资源代理312的资源的软件模块。所述资源代理312可以从所述资源管理器310请求分配给所述资源代理312的资源单元。所述资源管理器310可以将资源单元独立地分配到所述云的每一层,并且能够根据从所述资源代理312中的每个资源代理接收的请求查看所述云中的每一层的资源需求。
每项服务还可包含资源代理312。每项服务中的资源代理312从所述资源管理器310请求资源单元。因此,部署在所述云中的每个资源代理312依赖于所述统一资源管理器310,以便所述资源管理器310可以在所述云中更有效地分配资源单元。
此处所述的资源单元可以指资源的任何逻辑单元。在物理层302的情况下,每个资源单元可以指例如SAN 152、CSU 154或NU 156。这些资源单元可以在整个所述云层中分配。但是,每个层和/或服务也可以定义其它资源单元来指该层或服务实现的虚拟资源。例如,所述Spark集群服务222可以通过逻辑上分组分配给所述Spark集群服务222的一个或多个资源单元以及用于利用这些资源单元的框架来实现一个或多个Spark集群。因此,诸如SaaS层308中的服务等其它服务可以请求Spark集群的分配,而不是物理层302的硬件资源单元。在这种情况下,资源单元可以指Spark集群。
在一个实施例中,资源管理器310可以跟踪所述云中可用的资源。资源管理器310可以发现包括在物理层302中的每个资源单元,例如通过轮询所述云中的每个节点来报告包括在所述节点中的资源单元。或者,所述资源管理器310可以读取由网络管理员维护的配置文件,该文件标识所述云的物理层302中包括的资源单元。此外,所述云中部署的每一层和/或服务还可以将资源信息流式传输到所述资源管理器310,所述资源管理器310指定这些层和/或服务实现的任何其它资源单元。然后,所述资源管理器310负责将这些资源单元分配给所述云中的其它层和/或服务。
在一个实施例中,所述资源管理器310在所述云架构中的节点上执行。更具体地,所述资源管理器310可以在服务器上加载并由所述服务器上的处理器执行。所述资源管理器310可以通过物理层302中的网络资源耦合到其它服务器。在不同服务器上执行的资源代理312可以通过经由网络向所述资源管理器310发送请求来向所述资源管理器310请求资源单元。在此类实施例中,所述资源管理器310的单个实例管理所述云中的所有资源单元。
在一个实施例中,所述资源管理器310是物理上分散的但逻辑上集中的云平面。更具体地,可以将所述资源管理器310的多个实例加载到多个不同的服务器上,使得部署在所述云中的任何资源代理312可以经由网络通过向所述资源管理器310的一个实例发送请求,从所述资源管理器310的任何实例请求资源单元。所述资源管理器310的多个实例可用于进行通信,使得资源分配全局规划为所述资源管理器310的所有实例。例如,可以将所述资源管理器310的一个实例加载到每个数据中心110中的单个服务器上,以提供所述资源管理器310的高可用性。在另一示例中,所述资源管理器的一个实例310可以加载到多个可用性区域的每个可用性区域中的单个服务器上。每个可用性区域可以包括若干数据中心,使得特定地理区域中的所有数据中心由所述资源管理器310的一个实例服务。
所述多个资源代理312可包括各种资源代理类型。每个资源代理312包括用于实现特定于与所述资源代理312相关联的层类型或服务的各种功能的逻辑。在一个实施例中,资源代理312是为特定层或服务设计的具有特定功能的独立模块。在另一实施例中,资源代理312是封装服务的现有资源管理器的容器。例如,可以修改为现有云架构编写的服务以包括资源代理312,所述资源代理312封装所述现有云架构服务中实现的资源管理器中。所述容器可以将以前的资源管理器的逻辑用于某些任务,同时使所述资源管理器与所述统一资源管理器310兼容。在又一个实施例中,所述资源代理312是轻量级客户端,本文称为资源代理群(resource agent fleet,简称RAF),使得所述资源代理312中仅包括基本逻辑量,并且假设如果需要,所述资源管理器310实现更复杂的逻辑。RAF资源代理312可以部署在某些SaaS服务中。RAF资源代理312可以是用于各种服务的简单软件模块,并且仅提供最低水平的功能,以使所述服务与所述统一资源管理器310兼容。
所述资源管理器310收集与部署在所述云中的资源单元相关的信息,并制定资源分配计划,将资源单元分配给部署在所述云中的层和/或服务。但是,随着服务数量的增加,在所述资源管理器310中实现的简单逻辑能够有效地将资源单元分配给各种服务变得更加困难。在这类情况下,可以在所述资源管理器310外部实现一种逻辑以协助确定基于对资源单元的特定请求应当分配给特定服务的资源单元的数量,并且所述资源管理器310在开发或调整资源分配计划时使用该逻辑。
图4示出了根据一个实施例的认知引擎服务410。所述认知引擎服务410是软件模块,其用于实现机器学习,以帮助根据对资源单元的特定请求确定应分配给特定服务的资源单元的数量。如图4所示,所述认知引擎服务410耦合到部署在所述云中的多个认知代理420。所述认知代理420用于收集所述云中执行的任务的指标数据,并将所述指标数据传输到与所述认知引擎服务410关联的指标数据收集和存储模块440。所述认知引擎服务410可以分析所述指标数据,以便调整全球资源分配计划。
在一个实施例中,所述云中的多个节点中的每个节点包括认知代理420,所述认知代理420存储在存储器中并由所述节点的一个或多个处理器执行。此处所述的节点可以指服务器或由服务器执行的虚拟机。节点中包含的认知代理420的每个实例都收集该节点的指标数据。所述指标数据包括但不限于处理器利用率指标、存储器利用率指标和/或网络带宽利用率指标。所述认知代理420用于跟踪所述节点正在执行的任务,并在执行所述任务期间对每个指标的值进行采样。在一个实施例中,所述认知代理420用于以固定采样频率(例如,每100ms、每秒、每分钟等)采样每个指标的值,并在每次任务完成执行时向所述指标数据收集和存储模块440传输包含每个指标的采样值的记录。在另一实施例中,所述认知代理420用于采样所述任务期间每个指标的值,并计算所述任务完成时所述指标的平均值。所述一个或多个指标的平均值将传输到所述指标数据收集和存储模块440。在又一实施例中,所述认知代理420用于跟踪所述任务期间的指标值,并计算所述任务完成时与所述指标对应的统计测量值。例如,所述认知代理420可以计算所述任务期间指标的最小值和最大值,或者所述认知代理420可以计算所述任务期间所述指标的平均值和所述指标的方差。所述统计测量值可以发送到所述指标数据收集和存储模块440,而不是所述指标的实际采样值。
在一个实施例中,所述认知引擎服务410基于所述指标数据训练一个或多个模型。所述一个或多个模型中的每个模型实现机器学习算法。机器学习算法包括但不限于分类算法、回归算法或集群算法。分类算法包括决策树算法、支持向量机(support vectormachine,简称SVM)算法、神经网络和随机森林算法等。回归算法包括,例如,线性回归算法、普通最小二乘回归算法等。集群算法包括,例如,K均值算法、分层集群算法和高连通子图(highly connected subgraph,简称HCS)算法等。每个机器学习算法可能与许多参数相关联,这些参数可以设置为配置模型,这些参数可以存储在存储器中作为配置数据452。例如,神经网络可以与一组权重相关联,每个权重用于所述神经网络的神经元实现的计算。与所述神经网络关联的一组权重可以存储为所述配置数据452用于实现神经网络的模型。
当任务在所述云中执行时,所述认知引擎服务410生成与每个任务关联的模板。在一个实施例中,所述模板包括客户标识、任务标识和由所述任务在所述云的一个或多个节点上处理的数据集的大小。客户标识代表与正在启动的任务对应的特定客户。所述任务标识是分配给任务的唯一值,它将特定任务与所述云中执行的一个或多个其它任务进行区分。所述数据集的大小是待由所述任务处理的数据集的大小(以字节为单位)。在另一实施例中,除了客户标识、任务标识和数据集的大小之外,所述模板还可以包含其它信息。例如,所述模板可以仅包括客户标识和任务分类,所述任务分类标识任务类型,而不是所述离散任务。可以生成任务标识将其应用于特定任务,以跟踪来自多个认知代理420的指标数据,但所述任务标识可不包含在所述模板中。在另一示例中,所述模板可包含客户标识、任务标识、数据集标识和指示任务启动时间的时间戳。通常,所述认知引擎服务410使用所述模板来识别与所述任务相关的信息。应当理解的是,所述模板可包含标识特定客户的信息,因为任何特定客户都可能会启动许多类似的任务,因此将客户与任务相关联的模板有助于预测所述客户启动的未来任务。所述认知引擎服务410可以在所述认知引擎服务410可访问的存储器中存储多个任务的模板数据454。
当每个任务在所述云中执行时,所述认知代理420收集与所述任务对应的指标数据。所述指标数据传输到指标数据收集和存储模块440以及任务的任务标识。所述指标数据收集和存储模块440可以处理从多个认知代理420接收的指标数据,以便聚合来自与同一任务相关联的多个节点的指标数据。在一个实施例中,所述指标数据收集和存储模块440可以按循环方式轮询每个认知代理420,以请求自上次对所述认知代理420进行轮询以来收集的任何新指标数据。在另一实施例中,当每个任务或任务的一部分在与所述认知代理420对应的节点上完成执行时,所述认知代理420可以异步地将收集的指数数据传输到所述指标数据收集和存储模块440。所述指标数据收集和存储模块440可以包括缓冲器,例如在存储器中实现的FIFO(先进先出),其暂时存储从所述多个认知代理420接收的指标数据的记录,直到所述指标数据收集和存储模块440能够处理这些指标数据为止。
所述指标数据收集和存储模块440可以将来自与单个任务对应的多个认知代理420的指标数据累加到所述任务的指标数据集合中。一旦所述指标数据收集和存储模块440从与特定任务相关联的所有认知代理420(即,所述任务完成执行后)接收到指标数据,所述指标数据收集和存储模块440可以将来自不同认知代理的多个指标数据处理为所述任务的指标数据的集合。所述指标数据的收集可以通过组合来自单个认知代理420的指标数据来生成;例如,通过计算来自多个认知代理420的每个指标的平均值。在另一实施例中,所述指标数据收集和存储模块440可以简单地将所述指标数据从所述多个认知代理420收集到数据结构中,例如2D阵列,所述2D阵列存储多个指标中每个指标的多个值并将所述数据结构存储在所述存储器中。
所述指标数据收集和存储模块440用于将所述任务的指标数据收集传输到所述认知引擎服务410。在一个实施例中,所述认知引擎服务410用于基于所述指标数据计算一个或多个任务中每个任务对应的分数,并将为一个或多个任务计算的分数与为一个或多个任务对应的模板相关联。所述分数可以表示可以衡量使用特定数量的资源单元执行所述任务的效率的值。例如,可以根据完成任务所用时间、任务执行期间的平均CPU利用率等来计算分数。应理解的是,可以选择任何公式来计算与所述任务相关联的分数,并且所述分数提供了用于比较使用不同资源单元的不同任务的执行情况的指标。将分数和模板关联的信息可以存储在存储器中作为学习数据456。在一个实施例中,将所述分数和模板关联包括将所述分数添加到所述模板。
执行多项任务后,可以训练一个或多个模型来选择待分配给特定任务的最佳数量的资源单元。在一个实施例中,可以为所述模板数据454中包含的每个唯一客户标识生成单独且离散的模型。在另一实施例中,可以根据相似性将模板组合在一起,并且可以为每组类似模板生成一个模型。在又一实施例中,可以为整组模板生成一个模型。
同样,每个模型实现机器学习算法,例如回归算法。在所述云中执行任务期间收集的学习数据456可用于训练所述模型。训练是指根据所述学习数据的分析调整模型的参数。例如,可以将所述学习数据456实现为模板数据库,其中每个模板包括与一个或多个客户发起的一个或多个任务相关联的信息、每个任务的数据集的大小、分配给每个任务的资源单元的数量以及所述认知引擎服务410根据在执行所述任务时收集的指标数据生成的分数。可以查询所述数据库以返回与模板子集关联的数据条目,这些数据条目可用作训练数据,以生成这些模板的模型。因此,可以通过比较所述模型的输出和所述云中执行的先前任务的结果(存储在所述返回的模板集合中)来调整所述参数。例如,所述特定客户和任务的每个模板包括分配给所述任务的资源单元的数量以及与执行任务时收集的指标数据对应的分数。可以调整所述模型的参数,以便在为处理数据集的任务分配多个资源单元以执行给定数据集大小的任务时,所述模型预测最可能的分数。通过运行给定数据集和不同数量的资源单元的模型,多个预测分数可以与不同数量的资源单元相关联,并根据所述预测分数进行分析以选择最佳数量的资源单元。此处使用的术语“最佳”是指根据特定应用确定的各种标准中的任何一种,相对于其它数量的资源单元的任何优选数量的资源单元。
首次执行任务时,将创建模板,并使用所述客户标识和所述任务标识来标识所述模板。每次执行所述任务时,所述数据的大小和分配给所述任务的资源单元的数量N都存储在所述模板中。所述认知引擎服务410为所述任务的每次执行分配分数,该分数存储在所述学习数据456中并与所述模板相关联。当在所述学习数据456中收集了与所述模板相关联的分数阈值时,则使用所述学习数据456中的分数训练模型。由所述<customer_id,task_id>元组标识的模板与所述训练的模型相关联。特别地,所述学习数据456中的<size,N,Score>元组用于训练所述模型,所述模型将所述数据集的大小和资源单元的数量N作为所述模型的输入,并预测所述分数。向所述认知引擎服务410提供阈值以指定待达到的所需分数,并帮助所述认知引擎服务410根据该阈值选择最佳数量的资源单元N。
一旦基于所述学习数据456对所述一个或多个模型进行训练,所述资源管理器310可以在制定所述全球资源分配计划时使用所述认知引擎服务410。由于新任务由服务发起,因此所述服务可以向资源管理器310请求资源。所述资源管理器310可以向所述认知引擎服务410发送请求,以便生成分配给所述任务的最佳数量的资源单元。请求可包括任务标识和待由所述任务操作的数据集的大小。所述认知引擎服务410可以将N的值列表传回所述资源管理器310,所述资源管理器310将尝试将与N的值之一对应的最佳数量的资源单元从所述列表分配到请求资源单元的服务或层(如果所述资源单元可用)。在一个实施例中,N的值与所述模型生成的相应预测分数一起在所述列表中传输。所述资源管理器310可以根据各种条件从所述列表中选择N的最优值。例如,资源管理器310可以根据可用资源单元的数量选择N的值。作为另一示例,所述资源管理器310可以根据所述预测的分数选择N的值,例如通过确定最大分数,或通过确定分数与资源单元的数量的最佳比率。
执行新任务时,所述认知代理420收集所述任务的其它指标数据,并用于将分数和其它指标数据存储在所述学习数据456中。所述分数和其它指标数据可与模板数据454中已存在的模板相关联,或者可以创建新的模板并将其添加到模板数据454,然后将所述分数和其它指标数据与新的模板相关联。此外,这些新的样本,包括待由所述任务处理的数据集的大小、分配给所述任务的资源单元的数量N,以及根据所述收集的指标数据计算的任务的分数,可用于进一步训练所述模型。因此,通过动态调整所述模型可以跟踪在所述云中最有效地使用资源单元的情况。换言之,用于选择待分配给任务的资源单元的数量的算法是持续监控最有效的资源使用情况,并在结果发生变化时调整资源分配。
图5是根据一个实施例确定分配给任务的资源单元的数量的方法500的流程图。所述方法500可以通过硬件、软件或硬件和软件的组合来执行。在一个实施例中,所述方法500由在所述云的一个或多个节点上执行的认知引擎服务410实现。
在步骤502中,接收与一个或多个任务相关联的指标数据。在一个实施例中,所述认知引擎服务410从多个认知代理420接收指标数据。所述指标数据可以直接从所述多个认知代理420接收,或者可以通过介入的指标数据收集和存储模块440间接接收,所述介入的指标数据收集和存储模块440从所述多个认知代理420收集指标数据,并将每个任务的指标数据聚合到转发到所述认知引擎服务410的指标数据的集合中。
在步骤504中,根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数。在一个实施例中,可以接收多个已完成任务的指标数据,并存储为学习数据456。所述认知引擎服务410可根据相应的指标数据计算每项已完成任务的分数。所述相关联任务的分数、指标数据和大小可以作为样本存储在所述学习数据456中。所述学习数据456中的多个样本可用于训练所述模型。在一个实施例中,所述认知引擎服务410用于每当所述认知引擎服务410接收到与任务相关的指标数据时更新模型。
在步骤506中,接收为处理数据集指定第一任务的请求。在一个实施例中,每当由部署在所述云中的服务发起任务时,都会通知资源管理器310。可以通知请求将资源单元分配给服务以执行所述任务。所述资源管理器310可以向所述认知引擎服务410发送请求,所述请求包括客户标识、任务标识和待由所述任务处理的数据集的大小。
在步骤508中,根据所述第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元。在一个实施例中,所述认知引擎服务410使用所述请求中包含的客户标识和任务标识选择与所述任务对应的模板。如果该客户和任务存在模板,则从所述模板数据454中读取该模板,并用于从与所述模板对应的一个或多个型号中选择特定型号。如果模板不存在,则可以选择并使用类似的模板来选择特定型号。所述数据集的大小和资源单元的数量可作为输入提供给所述模型,所述模型旨在在分配用于执行所述第一任务的资源单元的数量时生成预测的分数。所述模型可以多次运行,以为不同数量的资源单元生成多个预测分数。所述模型实现机器学习算法,例如回归算法。所述模型的输出可以从所述认知引擎服务传输410传送到所述资源管理器310,以便所述资源管理器310确定待分配到第一任务的最佳数量的资源单元。所述资源管理器310跟踪与所述云中可用的资源单元相关的信息,因此,可以根据所述模型输出的预测分数选择待分配到所述第一任务的最佳数量的资源单元。
在步骤510中,所述资源管理器310将最佳数量的资源单元分配给所述云中的服务,以管理所述第一任务的执行。在一个实施例中,所述资源管理器310调整全局资源分配计划,以指定将哪些资源单元分配给所述云300中的每个资源代理312。最佳资源代理数量可以分配给分配管理在所述全局资源分配计划中执行所述任务的资源代理312。
图6是根据一个实施例的用于训练模型的方法600的流程图。所述方法600可以通过硬件、软件或硬件和软件的组合来执行。在一个实施例中,所述方法600由在所述云的一个或多个节点上执行的认知引擎服务410实现。
在步骤602中,使用所述云中包含的资源执行任务。在一个实施例中,资源管理器310为服务向资源代理312分配多个资源单元。所述服务利用分配给所述服务的资源单元在所述云中的一个或多个节点上执行所述任务。在步骤604中,在执行所述任务期间收集指标数据。在一个实施例中,一个或多个认知代理在执行所述任务的节点上收集指标数据,并通过指标数据收集和存储模块440直接或间接地将所述指标数据传输到所述认知引擎服务410。所述指标数据可以包括处理器利用率指标、存储器利用率指标、网络带宽利用率指标和执行任务所用时间中的至少一种。
在一个实施例中,执行任务所用时间由认知代理420测量,并包含在提交到所述指标数据收集和存储模块440的指标数据中。在另一实施例中,所述认知引擎服务410从所述资源管理器310接收指示所述任务开始的时间戳,并且来自每个认知代理420的指标数据包括指示所述任务的至少一部分在对应节点上完成的时间戳。然后,所述认知引擎服务410计算从分配了所述任务中至少一部分的多个认知代理420中的每一个接收到的最大时间戳与从所述资源管理器310接收到的时间戳之间的差值,所述时间戳指示所述任务的开始时间为执行任务所经过的时间。
在步骤606中,为执行所述任务分配了分数。在一个实施例中,所述认知引擎服务410根据在执行所述任务期间收集的指标数据,计算用于执行所述任务的分数。所述分数、指标数据和数据集的大小可以作为样本存储在所述学习数据456中。所述样本可以与所述模板数据454中与所述任务关联的模板相关联。在步骤608中,根据分数训练与所述任务对应的模型。在一个实施例中,所述认知引擎服务410基于为执行所述任务而计算的分数以及分配给任务的资源单元数量更新所述模型的参数。
图7A是根据另一实施例的用于确定待分配到任务的最佳数量的资源单元的方法700的流程图。所述方法700可以通过硬件、软件或硬件和软件的组合来执行。在一个实施例中,所述方法700由所述认知引擎服务410和/或在所述云的一个或多个节点上执行的资源管理器310实现。
在步骤702中,接收指定任务的请求。在一个实施例中,资源管理器310向所述认知引擎服务410传输请求,所述请求包括客户标识、任务标识和待由所述任务处理的数据集的大小。在另一实施例中,所述请求包括客户标识、任务标识和任务的其它配置数据(例如,待由所述任务处理的数据集的大小、用于配置所述任务的参数、完成所述任务的分配时间等)。
在步骤704中,所述认知引擎服务410确定是否存在匹配的模板。在一个实施例中,所述认知引擎服务410使用客户标识和任务标识在所述模板数据454中搜索匹配的模板。如果找到匹配的模板,则在步骤706中,所述认知引擎服务410确定模型是否与所述模板对应。所述模板数据454中的每个模板都可与相应模型相关联。例如,多个客户的模板可与特定型号关联,所述多个客户中的客户的每个模板都与所述型号关联。如果模型与所述模板关联,则所述方法700继续执行步骤712,详细介绍如下。但是,如果模型未与所选模板关联,则所述方法700继续执行步骤710,详细介绍如下。
返回步骤704,如果所述模板数据454中不存在匹配的模板,则在步骤708中,所述认知引擎服务410确定所述模板数据454中是否存在类似的模板。类似模板可以是选择特征与客户标识和所述请求中包含的任务标识最接近的模板。例如,如果某一模板的选择特征与所述客户标识匹配但与所述请求中包含的任务标识不匹配,可以选择该模板作为类似模板。或者,如果某一模板的选择特征具有不同客户标识但具有相同的请求中包含的任务标识,可以选择该模板作为类似模板。在一个实施例中,可以对客户和/或任务进行分析,以基于各种指标来确定相似性,并且客户标识和/或任务标识的集合可以关联为“类似”。例如,可以对客户的业务领域、客户的员工数量和/或客户的年总收入进行分析,如果相同一般业务领域中的客户具有相对类似的员工数量和/或总收入,则这些客户被视为“类似”,可以选择类似模板。客户之间的相似性非常有用,因为类似客户很可能运行类似的任务,具有类似的大小数据集。因此,有效地使用一个客户的资源对于另一个类似的客户很可能也是有效的。因此,使用与一个客户关联的学习数据456训练的模型可适用于另一个类似的客户。
如果所述模板数据454中包含类似的模板,则所述方法700返回到步骤706,其中所述认知引擎服务410确定模型是否与所述类似模板对应。返回到步骤708,如果所述模板数据454中未包含类似的模板,则在步骤710中,所述认知引擎服务410生成N的随机k值列表(即,待分配用于执行所述任务的资源单元的数量)。在一个实施例中,K等于1,从而生成N的单个随机值,该值表示为执行所述任务而待分配的资源单元的数量。在另一个实施例中,K大于一个,使得所述资源管理器310可以基于其它考虑(例如资源可用性)选择N的多个值中的一个。
应理解的是,如果在步骤704中没有模板匹配,或者甚至在步骤706中存在类似的模板,则如果已经对与该请求相关联的学习数据456进行了训练,则可以没有任何模型。因此,随机生成待分配给任务的资源单元的数量,所述执行的结果将提供与新模板关联的样本,以便在收集到足够多的样本后,在未来的某个时间点将所述模板链接到经过训练的模型。在一个实施例中,可以将与所述客户标识和所述请求中包含的任务标识对应的新模板添加到所述模板数据454中,并且可以创建新模型,并且在执行所述任务之后,使得类似的任务将与所述系统中具有相应模型的模板相关联。
返回到步骤712,从所选模型中检索N的K值列表。同样,所选模型可以对应与所述请求中包含的任务(即客户标识、任务标识元组)匹配的模板,或者与所述请求中包含的任务类似的模板。在一个实施例中,N的K值列表包括N的单个值,该值指示为根据所述模型的输出执行所述任务而待分配的最佳数量的资源单元。在另一个实施例中,N的K值列表包括多个N值,根据所述模型输出,N的每个值对应预测分数。
在步骤714中,所述资源管理器310从N的K值列表中分配为执行所述任务而待分配的最佳数量的资源单元N。在一个实施例中,所述资源管理器310通过从N的K值列表中随机选择一个N值来选择最佳数量的资源单元。例如,如果N的K值列表包括N的3个值,则所述资源管理器310随机选择N的三个值中的一个。在另一个实施例中,所述资源管理器310可以考虑其它因素,例如当从N的K值中选择最佳数量的资源单元N时的资源可用性。
图7B是根据一个实施例的用于分配待分配的最佳数量的资源单元的方法750的流程图。所述方法750可以通过硬件、软件或硬件和软件的组合来执行。在一个实施例中,所述方法750由在所述云的一个或多个节点上执行的资源管理器310实现,并且可以包括方法700的步骤714的详细实现。
在步骤752中,接收N的K值列表。在一个实施例中,N的K值列表包括N的K个标量值,其中每个标量值表示待分配用于执行所述任务的资源单元的数量N。在另一个实施例中,N的K值列表可以指定N的K个向量,其中每个向量包括多种不同资源单元类型的N个资源单元的两个或更多个标量值(例如,计算设备、存储设备等)。
在步骤754,所述资源管理器310确定与N的K值相关的任何预测分数是否超过阈值。在一个实施例中,N的K值列表中N的每个值表示模型的输入,以生成N的该值的预测分数。可以设置满意分数的阈值,该阈值指示预测分数是否与满意结果相对应。如果与N的K值之一相关的任何预测分数高于所述阈值,则在步骤756中,所述资源管理器310分配最佳数量的资源单元,用于根据资源可用性执行所述任务。在一个实施例中,对于N的K值的分数(或平均分数)高于所述阈值的情况,所述资源管理器310在这些K值列表中选择值的子集作为待分配用于执行所述任务的资源单元的潜在数量。然后,所述资源管理器310根据这些数量的资源单元是否可用,从所述值子集中选择一个值作为待分配的资源单元的数量。所述认知引擎服务410可以在确定可用性时以最高的预测分数开始,并通过降低分数来处理值子集,直到找到可用的特定数量的资源单元。如果所述值的子集中没有任何值与可用资源单元关联,则可以选择所述值子集中的最小值。
返回步骤754,如果与N的K值之一相关的预测分数均未高于所述阈值,则所述资源管理器310分配与最佳可用预测分数对应的数量的资源单元。在一个实施例中,当所有预测分数低于所述阈值时,将选择与最佳预测分数关联的数量的资源单元,以提供满意结果,而不考虑资源的可用性。换言之,只有当资源单元有多个不同的分配时,才会考虑资源的可用性,这可以提供满意结果。否则,即使资源争用存在问题时,资源单元的分配也会尝试提供最满意的结果。
图8示出了可以实施所述各种先前实施例的各种架构和/或功能的示例性系统800。如图所示,提供的系统800包括至少一个处理器801,其连接到通信总线802。所述通信总线802可以使用任何合适的协议实施,例如PCI(外围部件互连)、PCI-Express、AGP(加速图形端口)、HyperTransport或任何其它总线或点对点通信协议。所述系统800还包括存储器804。控制逻辑(软件)和数据存储在所述存储器804中,所述存储器804可以采用随机存取存储器(random access memory,简称RAM)的形式。
所述系统800还包括输入/输出(input/output,简称I/O)接口812和通信接口806。用户输入可以从所述输入设备812接收,例如键盘、鼠标、触摸板、麦克风等。在一个实施例中,所述通信接口806可以耦合到图形处理器(未示出),所述图形处理器包括多个着色器模块、光栅化模块等。上述模块中的每个甚至可以位于单个半导体平台上,以形成图形处理单元(graphics processing unit,简称GPU)。
在本说明中,单个半导体平台可以指唯一的基于半导体的集成电路或芯片。应当注意的是,术语“单一半导体平台”还可以指具有更高连接性的多芯片模块,这些模块模拟芯片内运行,并在使用传统中央处理器(central processing unit,简称CPU)和总线实施方面做出了实质性改进。当然,各种模块也可以单独设置,也可以根据用户的需求组合设置为各种半导体平台。
所述系统800还可以包括辅助存储器810。所述辅助存储器810包括例如硬盘驱动器和/或可移动存储驱动器,比如软盘驱动器、磁带驱动器、紧凑型磁盘驱动器、数字多功能磁盘(digital versatile disk,简称DVD)驱动器、记录设备、通用串行总线(universalserial bus,简称USB)闪存。所述移动存储驱动器以众所周知的方式从可移动存储单元读取和/或向可移动存储单元写入。
计算机程序或计算机控制逻辑算法可以存储在所述存储器804和/或所述辅助存储器810中。执行此类计算机程序时,使所述系统800能够执行各种功能。所述存储器804、所述存储器810和/或任何其它存储器是计算机可读介质的可能示例。
在一个实施例中,可以在处理器801、耦合到通信接口806的图形处理器、能够同时具有处理器801和图形处理器的能力的至少一部分的集成电路(未示出)、芯片组(即,设计成用作执行相关功能的单元销售的一组集成电路等)和/或任何其它集成电路的上下文中实现各种先前图的架构和/或功能。
此外,之前的各种图的架构和/或功能可以在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、特定应用系统和/或任何其它所需系统的环境中实现。例如,所述系统800可以采取台式计算机、笔记本电脑、服务器、工作站、游戏机、嵌入式系统和/或任何其它类型的逻辑的形式。然而,所述系统800可以采取各种其它设备的形式,包括但不限于个人数字助理(personal digital assistant,简称PDA)设备、移动电话设备、电视等。
此外,虽然未显示,但所述系统800可以耦合到网络(例如,电信网络、局域网(local area network,简称LAN)、无线网络、广域网(wide area network,简称WAN),例如互联网、对等网络、有线网络等)进行通信。
在示例性实施例中,所述系统800包括指标数据接收模块、模型训练模块、请求接收模块、资源单元确定模块和分配模块,其中所述指标数据接收模块在与部署在所述云中的多个认知代理通信的认知引擎服务中,接收与一个或多个任务关联的指标数据,其中,所述指标数据由所述多个认知代理收集;所述模型训练模块根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;所述请求接收模块接收为处理数据集指定第一任务的请求;所述资源单元确定模块根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;以及所述分配模块将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。在一些实施例中,所述系统800可以包括其它或额外的模块来执行上述实施例中描述的步骤的任意一个或其组合。此外,如所述附图中的任意图所示或所述权利要求中任一项所述,所述方法中的附加或替代实施例或方面中的任意实施例或方面也预期包括类似的模块。
应当注意的是,在一个方面中,此处描述的技术在存储在计算机可读介质中的可执行指令中体现,以供指令执行机器、装置或设备使用或与其结合使用,例如,基于计算机的或包括处理器的机器、装置或设备。本领域技术人员将认识到,对于一些实施例,包括其它类型的计算机可读介质,可存储计算机可访问的数据,比如磁带盒、闪存卡、数字视频光盘、伯努利盒、随机存取存储器(random access memory,简称RAM)和只读存储器(read-only memory,简称ROM)等。
此处所述的“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适介质中的一个或多个,使得指令执行机器、系统、装置或设备可以读取(或取出)来自计算机可读介质的指令并执行用于执行所述方法的指令。合适的存储格式包含电子、磁性、光和电磁格式中的一个或多个。常规示例性计算机可读介质的非详尽列表包括:诸如便携式计算机磁盘、RAM、ROM、可擦除可编程只读存储器(erasable programmable read onlymemory,简称EPROM,或闪存)以及光存储设备,其中包括便携式光盘(compact disc,简称CD)、便携式数字视频光盘(digital video disc,简称DVD)、高清晰度DVD(highdefinition DVD,简称HD-DVDTM)和蓝光光碟等。
应理解,所描述的图中示出的组件的布置是示例性的,并且可能有其它布置。还应理解,由权利要求书界定的、下文描述的并且在各种框图中所说明的各种系统组件(和装置)表示根据本文中所公开的主题配置的一些系统中的逻辑组件。
例如,这些系统组件(和装置)中的一个或多个可以整体或部分地通过所描述的图中示出的布置中示出的至少部分组件实现。另外,尽管这些组件中的至少一个至少部分地实现于电子硬件组件并因此构成机器,但是其它组件可以实现于软件,当包含于执行环境中时所述组件构成机器、硬件或软件和硬件的组合。
更具体地,由权利要求书界定的至少一个组件至少部分实现于电子硬件组件,例如指令执行机器(例如,基于处理器的或包含处理器的机器),和/或实现于专用电路或电路系统(例如,互连以执行专用功能的离散逻辑门)。其它组件可以实现于软件、硬件或软件和硬件的组合中。此外,可以组合这些其它组件中的一些或全部组件,可以完全省略一些组件并且可以添加其它组件,同时仍实现本文中描述的功能。因此,本文中描述的主题可以许多不同变化形式体现,且所有此类变化形式涵盖在权利要求书的范围内。
在以上描述中,除非另外指明,否则参考动作和由一个或多个设备执行的操作的符号表示来描述主题。因而,应理解,有时被称为计算机执行动作和操作的此类动作和操作包含构造形式的数据处理器的操作。这种操作对数据进行变换或将该数据保持在计算机的内存系统中各个位置,以本领域技术人员容易理解的方式重新配置或改变设备的操作。数据作为数据结构保存在内存的物理位置处,数据结构具有由数据格式限定的特定性质。然而,虽然在前文上下文中描述了主题,但这并不表示对所述主题的限制,因为所属领域的技术人员将了解,下文中描述的各种动作和操作也可以实施于硬件中。
为了促进对本文中描述的主题的理解,根据动作顺序描述许多方面。由权利要求限定的这些方面中的至少一个方面由电子硬件组件执行。例如,将认识到,可通过专用电路或电路系统,通过正由一个或多个处理器执行的程序指令或通过这两者的组合执行各个动作。本文中对任何动作顺序的描述并不意图暗示必须遵循用于执行此顺序而描述的特定次序。本文所描述的所有方法可以以任何适当的次序来执行,除非本文中另有说明或上下文另有清楚否定。
在描述主题(特别是在下面的权利要求的上下文中)中使用术语“一”,“一个”和“所述”以及类似的指示物将被解释为涵盖单数和复数,除非本文另有说明或与上下文明显矛盾。在此引证数值的范围仅旨在用作单独地提及每个单独的数值落在所述范围内描述的方法,除非在此另有说明,并且每个单独的数值并入到本说明书中就像它被单独地在此引证一样。此外,上述描述仅出于说明的目的,而不是出于限制的目的,寻求保护的范围由附属权利要求及其任何等效物来限定。本文提供的任何和所有示例或示例性语言(例如,“比如”)的使用仅旨在更好地说明主题,并且不会对主题的范围提出限制,除非另有声明。使用术语“基于”和其它类似短语指示在附属权利要求和书面描述中产生结果的条件,并不旨在排除产生所述结果的其它条件。本说明书中的任何语言都不应理解为指示实践本实施例所必需的任何非声明的要素。
本文中描述的实施例包含发明人实施所要求的主题已知的一个或多个模式。应理解,所属领域的一般技术人员读了上述描述将明显了解上述实施例的变化形式。本发明人期望熟练的业内人士适当时采用此类变化,并且本发明人想以不同于本文中特定描述的其它方式来实践本发明所主张的主题。因此,所主张的主题包含可适用法律所准许的在附属权利要求中叙述的主题的所有变化和等效物。此外,除非本文另外指示或以其它方式明确指出与内容相矛盾,否则本发明涵盖上述要素以其所有可能的变化形式的任何组合。
Claims (20)
1.一种用于在所述云中分配资源的计算机实现方法,其特征在于,包括:
在与部署在所述云中的多个认知代理通信的认知引擎服务中,接收与一个或多个任务关联的指标数据,其中,所述指标数据由所述多个认知代理收集;
根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;
接收为处理数据集指定第一任务的请求;
根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;
将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。
2.根据权利要求1所述的方法,其特征在于,所述一个或多个模型中的每个模型实现机器学习算法。
3.根据权利要求2所述的方法,其特征在于,所述机器学习算法是回归算法。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述模板包括客户标识和任务标识,并且所述模板用于从所述一个或多个型号中选择所述第一型号。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述指标数据包括处理器利用率指标、存储器利用率指标、网络带宽利用率指标和执行所述任务所用时间中的至少一个,并且所述认知引擎服务用于基于所述指标数据计算与所述一个或多个任务中的每个任务对应的分数。
6.根据权利要求5所述的方法,其特征在于,还包括将为所述一个或多个任务计算的分数与相应的模板相关联。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述云包括一个或多个数据中心中的多个节点,所述多个节点中的每个节点通过一个或多个网络与所述多个节点中的至少一个其它节点通信。
8.根据权利要求7所述的方法,其特征在于,所述多个节点中的每个节点包括存储在存储器中并由所述节点的一个或多个处理器执行的认知代理。
9.一种用于在云中分配资源的系统,其特征在于,包括:
非瞬时性存储器,包含指令;
一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行以下指令:
在与部署在所述云中的多个认知代理通信的认知引擎服务中,接收与一个或多个任务关联的指标数据,其中,所述指标数据由所述多个认知代理收集;
根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;
接收为处理数据集指定第一任务的请求;
根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;
将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。
10.根据权利要求9所述的系统,其特征在于,每个模型实现机器学习算法。
11.根据权利要求10所述的系统,其特征在于,所述机器学习算法是回归算法。
12.根据权利要求9至11中任一项所述的系统,其特征在于,所述模板包括客户标识和任务标识,并且所述模板用于从所述一个或多个型号中选择所述第一型号。
13.根据权利要求9至12中任一项所述的系统,其特征在于,所述指标数据包括处理器利用率指标、存储器利用率指标、网络带宽利用率指标和执行所述任务所用时间中的至少一个,并且所述认知引擎服务用于基于所述指标数据计算与所述一个或多个任务中的每个任务对应的分数。
14.根据权利要求13所述的系统,其特征在于,所述认知引擎服务还用于将为所述一个或多个任务计算的分数与相应的模板相关联。
15.根据权利要求9至14中任一项所述的系统,其特征在于,所述云包括一个或多个数据中心中的多个节点,所述多个节点中的每个节点通过一个或多个网络与所述多个节点中的至少一个其它节点通信。
16.根据权利要求15所述的系统,其特征在于,所述多个节点中的每个节点包括存储在存储器中并由所述节点的一个或多个处理器执行的认知代理。
17.一种非瞬时性计算机可读介质,其特征在于,存储计算机指令,所述计算机指令用于降低移动设备功耗,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:
在与部署在所述云中的多个认知代理通信的认知引擎服务中,接收与一个或多个任务关联的指标数据,其中,所述指标数据由所述多个认知代理收集;
根据所述指标数据训练一个或多个模型,以预测使用特定数量的资源单元执行的任务的分数;
接收为处理数据集指定第一任务的请求;
根据第一模型输出的预测分数确定待分配到所述第一任务的最佳数量的资源单元;
将所述最佳数量的资源单元分配到所述云中的资源代理,以管理所述第一任务的执行。
18.根据权利要求17所述的非瞬时性计算机可读介质,其特征在于,每个模型实现机器学习算法。
19.根据权利要求17至18中任一项所述的非瞬时性计算机可读介质,其特征在于,所述模板包括客户标识和任务标识,并且所述模板用于从所述一个或多个型号中选择所述第一型号。
20.根据权利要求17至19中任一项所述的非瞬时性计算机可读介质,其特征在于,所述指标数据包括处理器利用率指标、存储器利用率指标、网络带宽利用率指标和执行所述任务所用时间中的至少一个,并且所述认知引擎服务用于基于所述指标数据计算与所述一个或多个任务中的每个任务对应的分数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/448,451 US20180255122A1 (en) | 2017-03-02 | 2017-03-02 | Learning-based resource management in a data center cloud architecture |
US15/448,451 | 2017-03-02 | ||
PCT/CN2018/076978 WO2018157753A1 (en) | 2017-03-02 | 2018-02-22 | Learning-based resource management in a data center cloud architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110301128A true CN110301128A (zh) | 2019-10-01 |
CN110301128B CN110301128B (zh) | 2021-02-23 |
Family
ID=63355893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880012497.5A Active CN110301128B (zh) | 2017-03-02 | 2018-02-22 | 基于学习的资源管理数据中心云架构的实现方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180255122A1 (zh) |
EP (1) | EP3580912A4 (zh) |
CN (1) | CN110301128B (zh) |
WO (1) | WO2018157753A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143161A (zh) * | 2019-12-09 | 2020-05-12 | 东软集团股份有限公司 | 日志文件的处理方法、装置、存储介质和电子设备 |
CN111767188A (zh) * | 2020-05-25 | 2020-10-13 | 云知声智能科技股份有限公司 | 一种训练任务监控方法及装置 |
CN112085208A (zh) * | 2020-07-30 | 2020-12-15 | 北京聚云科技有限公司 | 一种利用云端进行模型训练的方法及装置 |
CN114116186A (zh) * | 2020-08-26 | 2022-03-01 | 中国电信股份有限公司 | 资源动态调度方法和装置 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11138514B2 (en) | 2017-03-23 | 2021-10-05 | Futurewei Technologies, Inc. | Review machine learning system |
US11100406B2 (en) | 2017-03-29 | 2021-08-24 | Futurewei Technologies, Inc. | Knowledge network platform |
US10671417B2 (en) * | 2017-04-26 | 2020-06-02 | International Business Machines Corporation | Server optimization control |
KR102491068B1 (ko) * | 2017-11-17 | 2023-01-19 | 에스케이하이닉스 주식회사 | 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템 |
US11157002B2 (en) * | 2017-12-28 | 2021-10-26 | Intel Corporation | Methods, systems, articles of manufacture and apparatus to improve autonomous machine capabilities |
US10514958B2 (en) * | 2018-02-14 | 2019-12-24 | Capital One Services, Llc | Remotely managing execution of jobs in a cluster computing framework |
US10521462B2 (en) * | 2018-02-27 | 2019-12-31 | Accenture Global Solutions Limited | Virtual services rapid deployment tool |
US11108655B2 (en) * | 2018-07-06 | 2021-08-31 | International Business Machines Corporation | Automated application deployment in a managed services domain |
US11315014B2 (en) * | 2018-08-16 | 2022-04-26 | EMC IP Holding Company LLC | Workflow optimization |
CN110110970A (zh) * | 2019-04-12 | 2019-08-09 | 平安信托有限责任公司 | 虚拟资源风险评级方法、系统、计算机设备和存储介质 |
US11178065B2 (en) * | 2019-08-07 | 2021-11-16 | Oracle International Corporation | System and methods for optimal allocation of multi-tenant platform infrastructure resources |
US11755376B2 (en) * | 2019-08-23 | 2023-09-12 | Callidus Software, Inc. | Automatic assignment of hardware/software resources to different entities using machine learning based on determined scores for assignment solutions |
US11388077B2 (en) | 2019-10-30 | 2022-07-12 | Netspective Communications Llc | Computer-executable and traceable metric queues system |
CN111078399B (zh) * | 2019-11-29 | 2023-10-13 | 珠海金山数字网络科技有限公司 | 一种基于分布式架构的资源分析方法及系统 |
US10938742B1 (en) * | 2020-01-31 | 2021-03-02 | Bank Of America Corporation | Multiplexed resource allocation architecture |
US11625285B2 (en) * | 2020-05-29 | 2023-04-11 | EMC IP Holding Company LLC | Assigning workloads in a multi-node processing environment using feedback from each node |
US20220179769A1 (en) * | 2020-12-09 | 2022-06-09 | International Business Machines Corporation | Estimating cloud resources for batch processing |
CN112416602B (zh) * | 2020-12-10 | 2022-09-16 | 清华大学 | 一种分布式数据流资源弹性伸缩增强插件及增强方法 |
US11637788B2 (en) * | 2021-05-12 | 2023-04-25 | Juniper Networks, Inc. | Utilizing a model to manage resources of a network device and to prevent network device oversubscription by endpoint devices |
US12045649B1 (en) * | 2023-05-03 | 2024-07-23 | The Strategic Coach Inc. | Apparatus and method for task allocation |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115604A1 (en) * | 2008-10-31 | 2010-05-06 | Alexandre Gerber | Methods and apparatus to dynamically control access from virtual private networks to network-based shared resources |
CN102004671A (zh) * | 2010-11-15 | 2011-04-06 | 北京航空航天大学 | 一种云计算环境下数据中心基于统计模型的资源管理方法 |
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理系统 |
US20120303739A1 (en) * | 2011-05-27 | 2012-11-29 | James Michael Ferris | Systems and methods for determining consistencies in staged replication data to improve data migration efficiency in cloud based networks |
CN103036974A (zh) * | 2012-12-13 | 2013-04-10 | 广东省电信规划设计院有限公司 | 基于隐马尔可夫模型的云计算资源调度方法和系统 |
CN103399496A (zh) * | 2013-08-20 | 2013-11-20 | 中国能源建设集团广东省电力设计研究院 | 智能电网海量实时数据负载仿真测试云平台及其测试方法 |
US20130346614A1 (en) * | 2012-06-26 | 2013-12-26 | International Business Machines Corporation | Workload adaptive cloud computing resource allocation |
CN103533037A (zh) * | 2013-09-29 | 2014-01-22 | 浙江工商大学 | 基于经济模型的转发和控制分离网络中的资源调度方法 |
US20160124780A1 (en) * | 2014-10-30 | 2016-05-05 | Johannes Scheerer | Automatic Profiling Report Generation |
CN106095591A (zh) * | 2016-07-24 | 2016-11-09 | 成都育芽科技有限公司 | 一种基于云计算的虚拟机两级优化调度管理平台 |
US20160352593A1 (en) * | 2014-12-22 | 2016-12-01 | International Business Machines Corporation | Dynamic boundary based monitoring and metering |
CN106357796A (zh) * | 2016-10-12 | 2017-01-25 | 四川用联信息技术有限公司 | 移动云计算下移动应用的最优服务分配算法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681196B2 (en) * | 2004-11-18 | 2010-03-16 | Oracle International Corporation | Providing optimal number of threads to applications performing multi-tasking using threads |
CN102043673B (zh) * | 2009-10-21 | 2015-06-03 | Sap欧洲公司 | 并行处理中执行任务的节点数量的优化选择系统及方法 |
US9294557B2 (en) * | 2013-04-19 | 2016-03-22 | International Business Machines Corporation | Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment |
WO2015177691A1 (en) * | 2014-05-21 | 2015-11-26 | Pontus Networks 1 Ltd. | Thread performance optimization |
WO2016138067A1 (en) * | 2015-02-24 | 2016-09-01 | Cloudlock, Inc. | System and method for securing an enterprise computing environment |
US9697045B2 (en) * | 2015-03-24 | 2017-07-04 | International Business Machines Corporation | Selecting resource allocation policies and resolving resource conflicts |
CN104951425B (zh) * | 2015-07-20 | 2018-03-13 | 东北大学 | 一种基于深度学习的云服务性能自适应动作类型选择方法 |
CN105357199B (zh) * | 2015-11-09 | 2018-05-18 | 南京邮电大学 | 一种云计算认知资源管理系统及方法 |
-
2017
- 2017-03-02 US US15/448,451 patent/US20180255122A1/en not_active Abandoned
-
2018
- 2018-02-22 EP EP18761534.9A patent/EP3580912A4/en not_active Withdrawn
- 2018-02-22 WO PCT/CN2018/076978 patent/WO2018157753A1/en unknown
- 2018-02-22 CN CN201880012497.5A patent/CN110301128B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115604A1 (en) * | 2008-10-31 | 2010-05-06 | Alexandre Gerber | Methods and apparatus to dynamically control access from virtual private networks to network-based shared resources |
CN102004671A (zh) * | 2010-11-15 | 2011-04-06 | 北京航空航天大学 | 一种云计算环境下数据中心基于统计模型的资源管理方法 |
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理系统 |
US20120303739A1 (en) * | 2011-05-27 | 2012-11-29 | James Michael Ferris | Systems and methods for determining consistencies in staged replication data to improve data migration efficiency in cloud based networks |
US20130346614A1 (en) * | 2012-06-26 | 2013-12-26 | International Business Machines Corporation | Workload adaptive cloud computing resource allocation |
CN103036974A (zh) * | 2012-12-13 | 2013-04-10 | 广东省电信规划设计院有限公司 | 基于隐马尔可夫模型的云计算资源调度方法和系统 |
CN103399496A (zh) * | 2013-08-20 | 2013-11-20 | 中国能源建设集团广东省电力设计研究院 | 智能电网海量实时数据负载仿真测试云平台及其测试方法 |
CN103533037A (zh) * | 2013-09-29 | 2014-01-22 | 浙江工商大学 | 基于经济模型的转发和控制分离网络中的资源调度方法 |
US20160124780A1 (en) * | 2014-10-30 | 2016-05-05 | Johannes Scheerer | Automatic Profiling Report Generation |
US20160352593A1 (en) * | 2014-12-22 | 2016-12-01 | International Business Machines Corporation | Dynamic boundary based monitoring and metering |
CN106095591A (zh) * | 2016-07-24 | 2016-11-09 | 成都育芽科技有限公司 | 一种基于云计算的虚拟机两级优化调度管理平台 |
CN106357796A (zh) * | 2016-10-12 | 2017-01-25 | 四川用联信息技术有限公司 | 移动云计算下移动应用的最优服务分配算法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143161A (zh) * | 2019-12-09 | 2020-05-12 | 东软集团股份有限公司 | 日志文件的处理方法、装置、存储介质和电子设备 |
CN111143161B (zh) * | 2019-12-09 | 2024-04-09 | 东软集团股份有限公司 | 日志文件的处理方法、装置、存储介质和电子设备 |
CN111767188A (zh) * | 2020-05-25 | 2020-10-13 | 云知声智能科技股份有限公司 | 一种训练任务监控方法及装置 |
CN111767188B (zh) * | 2020-05-25 | 2023-12-19 | 云知声智能科技股份有限公司 | 一种训练任务监控方法及装置 |
CN112085208A (zh) * | 2020-07-30 | 2020-12-15 | 北京聚云科技有限公司 | 一种利用云端进行模型训练的方法及装置 |
CN114116186A (zh) * | 2020-08-26 | 2022-03-01 | 中国电信股份有限公司 | 资源动态调度方法和装置 |
CN114116186B (zh) * | 2020-08-26 | 2023-11-21 | 中国电信股份有限公司 | 资源动态调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20180255122A1 (en) | 2018-09-06 |
EP3580912A1 (en) | 2019-12-18 |
WO2018157753A1 (en) | 2018-09-07 |
EP3580912A4 (en) | 2020-03-11 |
CN110301128B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110301128A (zh) | 基于学习的资源管理数据中心云架构 | |
US11720408B2 (en) | Method and system for assigning a virtual machine in virtual GPU enabled systems | |
Somasundaram et al. | CLOUDRB: A framework for scheduling and managing High-Performance Computing (HPC) applications in science cloud | |
CN103970607B (zh) | 使用等价集合来计算优化虚拟机分配的方法和装置 | |
CN110313149A (zh) | 数据中心云架构中的统一资源管理 | |
Eskandari et al. | T3-scheduler: A topology and traffic aware two-level scheduler for stream processing systems in a heterogeneous cluster | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
CN110390345A (zh) | 一种基于云平台的大数据集群自适应资源调度方法 | |
Liu et al. | A survey of scheduling frameworks in big data systems | |
Kaur et al. | Latency and network aware placement for cloud-native 5G/6G services | |
Rathinaraja et al. | Dynamic ranking-based MapReduce job scheduler to exploit heterogeneous performance in a virtualized environment | |
CN109960579A (zh) | 一种调整业务容器的方法及装置 | |
Malathy et al. | Performance improvement in cloud computing using resource clustering | |
Jagadish et al. | Task scheduling algorithms in fog computing: A comparison and analysis | |
Kamboj et al. | A novel approach of optimizing performance using K-means clustering in cloud computing | |
Peterson | Decentralized scheduling for many-task applications in the hybrid cloud | |
US10402514B2 (en) | Modeling and simulation of distributed computing frameworks | |
Sharma et al. | Enhanced Quality of Service (EQoS)-Enabled Load Balancing Approach for Cloud Environment | |
Sunder et al. | Load balancing optimization based on enhanced genetic algorithm in cloud computing | |
Timokhin et al. | Study of scheduling approaches for batch processing in big data cluster | |
Nirmalan et al. | Survey on Map Reduce Scheduling Algorithms in Hadoop Heterogeneous Environments | |
Mittal et al. | AMO Based Load Balancing Approach in Cloud Computing | |
Russeliah et al. | Battle Royale Optimization-Based Resource Scheduling Scheme for Cloud Computing Environment. | |
Jeyaraj | An Efficient Mapreduce Scheduler for Cloud Environment | |
Bolodurina et al. | Investigation of algorithms and models of optimization of cloud applications and services in Virtual Infrastructure of Data Center |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |