CN114208126A - 用于配置云存储软件设备的方法和装置 - Google Patents
用于配置云存储软件设备的方法和装置 Download PDFInfo
- Publication number
- CN114208126A CN114208126A CN202080047410.5A CN202080047410A CN114208126A CN 114208126 A CN114208126 A CN 114208126A CN 202080047410 A CN202080047410 A CN 202080047410A CN 114208126 A CN114208126 A CN 114208126A
- Authority
- CN
- China
- Prior art keywords
- values
- workload
- performance
- configuration
- configuration parameter
- 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
- 238000000034 method Methods 0.000 title claims description 43
- 238000012549 training Methods 0.000 claims abstract description 26
- 238000010801 machine learning Methods 0.000 claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000003111 delayed effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 abstract description 7
- 238000002474 experimental method Methods 0.000 abstract description 4
- 238000003909 pattern recognition Methods 0.000 abstract description 2
- 239000013598 vector Substances 0.000 description 23
- 238000004891 communication Methods 0.000 description 19
- 238000012360 testing method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009533 lab test Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- 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
- 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
- G06F9/505—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 considering the load
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/0803—Configuration setting
-
- 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/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- 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/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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
-
- 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/501—Performance criteria
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文公开的实施例涉及基于模式识别算法智能配置云服务网关。训练机器学习模型以学习在处理观察到或估计的工作负载时影响系统性能的许多配置参数之间的相关模式。可以使用在使用各种配置和工作负载执行的实验期间观察到的性能数据离线执行模型训练。一旦被训练,模型就可以用于推荐:(a)基于被配置系统的约束的新配置参数值,(b)当系统配置有某些参数值时,可以在某个性能水平下执行的工作量,或(c)在配置有某些配置参数值的系统上运行某个工作负载时的预期性能水平。
Description
技术领域
本公开涉及配置管理。具体而言使用非线性非参数(NLNP)回归来训练用于云网关的性能调整的模型。
背景技术
云服务的组件具有许多可以针对性能改进进行调整的配置参数。系统可以基于客户的环境、云环境和不同环境之间的联网特性来选择配置参数的值。人类可以选择一些配置参数。但是,人类在配置参数值时考虑所有无数因素来提高性能是不切实际的。
一些系统执行自调整操作以防止服务由于特定资源的消耗超过限制而变得不可用。作为示例,系统可以实时监视资源的消耗。如果资源的消耗超过阈值或接近阈值,那么系统执行纠正动作。纠正动作可以包括向某些处理添加资源或限制对某些处理的资源分配。
附图说明
在附图的各图中,通过示例而非限制的方式图示了实施例。应当注意的是,在本公开中对“实施例”或“一个实施例”的引用不一定是指同一个实施例,并且它们意味着至少一个。在附图中:
图1是图示根据一个或多个实施例的使用远程对象存储服务的文件服务器的组件的框图;
图2A和2B是根据一个或多个实施例的一起图示确定推荐工作负荷的流程图;
图3A是图示根据一个或多个实施例的训练机器学习分析模型的框图;
图3B是图示根据一个或多个实施例的根据作为输入接收到的配置参数集合和所需性能值推荐工作负载值集合的配置顾问(advisor)的框图;
图3C是图示根据一个或多个实施例的根据作为输入接收到的工作负载值集合和所需性能值推荐配置参数集合的配置顾问的框图;
图3D是图示根据一个或多个实施例的根据作为输入接收到的工作负载值集合和配置参数集合估计预期性能值的配置顾问的框图;
图4示出了图示根据一个或多个实施例的计算机系统的框图。
可以添加、移除、修改或组合图中所示的组件和操作。相对于一个组件/操作描述的功能可以替代地由另一个组件实现。因此,本文图示和/或描述的特定组件/操作不应被解释为限制任何权利要求的范围。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供透彻的理解。可以在没有这些具体细节的情况下实践一个或多个实施例。一个实施例中描述的特征可以与另一个实施例中描述的特征组合。在一些示例中,参考框图形式描述了众所周知的结构和设备,以避免不必要地混淆本发明。
1.简介
调整云服务系统的配置参数值是一个非常困难的问题,因为该系统复杂并且可能需要关联大量单独和组合影响性能的参数的效果。
基于云的解决方案的大小调整和高效配置对于客户提高其特定工作负载的存储I/O吞吐量(或性能)至关重要。未被配置为支持客户工作负载的系统可能会导致性能不令人满意,诸如长时延、低吞吐量、IO超时、服务级别协议(SLA)违规等。此外,一旦系统被配置并操作,就可能存在与更改配置参数值相关联的附加成本。例如,添加诸如处理器或存储器之类的更多硬件资源以提高性能可能会非常昂贵。为性能增益而添加资源的成本效益比被不断或定期评估。
本文描述的一个或多个示例涉及基于云的存储解决方案和与存储服务相关的配置参数。所公开的技术可以用于在系统操作之前推荐初始配置、诊断操作中的系统的性能问题、或针对性能调整推荐对操作的系统的配置的更改。这些技术也可以适用于其它基于云或数据中心的服务,并且配置参数的类型可以是不同的和基于其它对应的服务类型。
2.总体概述
实施例为资源集合推荐特定水平的工作负载,同时确保性能满足或超过一个或多个性能标准。训练多变量状态估计技术(MSET)模型以学习在处理观察到或估计的工作负载时影响系统性能的许多配置参数之间的相关模式。可以使用从使用各种配置和工作负载执行的实验中积累的数据或使用匿名历史数据的储存库来离线执行模型训练。一旦被训练,模型就可以用于推荐可由系统基于正在配置的系统的资源约束和性能要求执行的工作负载。替代地,模型还可以用于推荐处理指定目标工作负载所需的系统配置。
本总体概述部分中可以不包括本说明书中描述和/或权利要求中记载的一些实施例。
2.配置顾问体系架构
图1是图示根据一个或多个实施例的使用远程对象存储服务的文件服务器的组件的框图。可以添加、移除、修改或组合组件。相对于一个组件描述的功能可以替代地由另一个组件实现。因此,本文图示和/或描述的特定组件不应被解释为限制任何权利要求的范围。
图1的系统图示了包括文件服务器110的系统100,文件服务器110通过网络115从远程数据中心160中的存储服务190请求对象。
文件服务器110接收管理文件的请求,诸如创建新文件或检索、修改或删除现有文件。在实施例中,文件服务器110是NFS服务器。文件服务器110是硬件和软件的组合。例如,文件服务器运行存储软件设备120和操作系统150。
存储软件设备120包括文件系统130和文件网关140。文件系统130存储本地存储在文件服务器上并由其管理的文件的一部分。如本文使用的词语“本地”和“远程”可以指虚拟和物理接近度。即,公司在其自己的场所运行的文件服务器可以在物理上对于公司是本地的。如果公司的文件服务器正在公司的虚拟专用网络上的物理上远程数据中心运行,那么文件服务器虚拟上对于公司是本地的。类似地,远程数据中心160至少在虚拟上远离文件服务器110,并且还可能在物理上远离文件服务器110。表示远程数据中心160的虚线框内的所示组件不在公司的虚拟网络上(即,虚拟远程)并且也可以在物理上远离公司的文件服务器的位置。网络115连接本地和远程系统。当本地和远程系统在地理上远离时,网络可能会引入时延。网络的速度会影响对涉及与远程存储服务交互的文件请求的响应的整体性能。
当接收到对存储在文件高速缓存136中的文件进行操作的请求时,从文件高速缓存136中检索文件,并对检索到的文件执行该请求。但是,当请求不在文件高速缓存136中的文件时,文件网关140可以从存储服务190请求存储对象、从检索到的存储对象创建文件,并将创建的文件存储在文件高速缓存136中。存储服务190可以向对象存储库195中的对象提供与由文件服务器提供的文件接口不同的对象接口,并且文件网关140可以执行文件接口和对象接口之间的协议转换。在实施例中,创建新文件可以在文件服务器本地执行并且新文件可以存储在文件高速缓存中。文件网关然后可以调用存储服务来存储新文件的一个或多个存储对象。类似地,修改高速缓存中的文件可以由存储软件设备在本地执行,然后修改可以由文件网关作为对存储对象的改变发送到存储服务以同步该文件的状态。
存储软件设备120的配置是本公开的主题。可以提出配置推荐来配置设备以运行预期的工作负载并满足指定的性能目标。指定的性能目标可能是基于服务质量协议所需要的,或者性能目标可能是进取的(aspirational)。
如本文所使用的,“工作负载”是当由系统执行时在系统上产生负载的任务集合。例如,对于文件服务器,任务集合是对文件执行的操作集合,诸如创建、修改或删除文件。工作负载值是对应工作负载所表示的工作量的量化。工作负载值在本文中可以用作表示工作量的工作负载值的简写。
性能目标可以表示服务质量(QoS)水平。QoS水平可以按任务或子任务定义。作为示例,QoS水平可以对应于完成写操作的时间量。QoS水平可以对应于完成销售订单的执行(包括提交用于运输、开票和库存更新的命令)的时间量。QoS水平可以指更细粒度的操作,诸如单个操作的盘时延或网络时延。QoS水平可以指每秒传输的兆字节(例如,100MB)数量的平均吞吐量。QoS水平可以指在给定时间段内执行的操作的数量。
配置参数133存储用于文件网关140以及文件网关在其中运行的环境的配置参数值。例如,配置参数值可以表征文件服务器在其上运行的硬件。短语“配置网关”在本文中用于表示配置网关在其中运行的环境以及配置网关本身。配置参数的示例可以包括操作参数,诸如数据高速缓存大小、元数据大小、日志文件大小和线程数量,以及非操作参数,诸如文件服务器体系架构(表达为内核数量和内核速度、存储器、盘控制器、网卡等)和网络115的带宽。
工作负载值指示由文件网关执行的工作量并指示满足文件服务器请求将强加给系统的计算量、网络传输、存储器事务和I/O负载。工作负载值可以表征网关的文件请求的数量和混合,诸如并发用户访问的数量、每单位时间访问的文件数量、文件的平均大小、目录层次结构和每单位时间I/O操作:读/写/附加的数量。一旦文件服务器操作并接收文件服务请求,由文件服务器数据经验性经历的工作负载的值就可以通过性能监视获得。在实施例中,遥测可以用于从文件网关和底层操作系统收集工作负载值的数据。即,重新配置操作文件网关的估计可以使用经验观察到的工作负载值。
除了配置参数和工作负载之外,还可以收集表示在配置参数集合下运行工作负载的结果的性能数据。示例性能数据可以包括响应于在文件服务器处接收到的文件请求而检索或存储文件的平均时间、(时延)平均CPU利用率和存储器利用率。
操作系统150是在文件服务器110硬件上运行的操作系统。Linux和Windows是操作系统的示例。操作系统提供遥测以获得诸如CPU利用率之类的性能信息。此外,存储在配置参数133中的一些值可以用于配置操作系统,诸如高速缓存大小。
存储服务190管理对象存储库195中的存储对象。对象存储库195中的一个或多个存储对象对应于客户本地环境中的文件。
机器学习分析模型172是确定配置参数值、工作负载值和性能值之间的相关性的数学回归模型。可以使用根据经验观察到在测试系统上相关的值集合来训练模型。针对多个测试运行的某个配置、工作负载和性能值集合可以用于训练模型。
可以通过在各种配置下的测试环境中运行对测试系统施加负载的文件请求集合来获取训练数据。对于其中测试系统处理文件请求集合的每个测试,记录的值包括(a)量化由测试系统执行的工作量的工作负载值(b)用于配置训练系统的配置参数值,以及(c)表示测试系统观察到的性能的值。每个参数可以与通常用于配置生产系统的合理值范围相关联。可以使用从合理值范围中选择的参数值的组合来构建性能测试。
用于性能调整的另一种技术包括在系统执行实际工作时监视特定资源的资源消耗。当资源的利用率超过阈值时,可以分配该类型的附加资源。可能需要更改资源的配置参数的值以反映新的资源量。但是,这种技术相互独立地监视和调整配置参数。例如,可以在不改变配置的虚拟存储器量的情况下将物理存储器添加到系统中,因为该系统不知道配置参数之间的交互。另一个示例是在配置中添加专用CPU内核或添加“CPU+GPU形状(Shapes)”,这可能会影响与存储器带宽和IO带宽相关联的参数值。“形状”是具有适用于高性能计算和其它低时延流传输分析工作负载的新GPU的常规CPU的授权和预测试参考配置。更改一个配置参数的值可能与另一个配置变量值的值不一致。来自分析模型的推荐可以包括相互一致的,并且可以允许更好的总体系统性能调整的配置参数值集合。示例是增加托管多个网关文件系统的服务器上的本地文件高速缓存阈值,而不增加可用的本地存储或以其它方式预留容量来适应高速缓存中数据的增加。当单独查看时,服务器可能看起来有足够的可用本地容量来启用更大的高速缓存,但是由于本地存储是共享资源,因此它可能会通过创建资源争用对其它网关文件系统产生负面影响。
训练模型在本文中可以被称为经机器训练的分析模型175(“模型175”)。模型175可以接收值的输入向量并且返回被估计为与输入向量最相似并且其值已知相关的值的向量。
配置门户180可以用于将训练数据发送到机器学习分析模型172。在实施例中,配置门户180可以用于从配置顾问170请求配置推荐。在实施例中,与存储服务相关联的专业服务、销售或支持代表可以使用远程数据中心160内的配置门户来确定要推荐给客户的配置参数集合。在另一个实施例中,配置顾问可以作为可通过网络115访问的、可以被客户直接用来请求配置推荐的服务提供。
配置顾问170可以接收输入值和关于期望输出值的信息。例如,配置顾问可以接收请求,该请求包括工作负载值、性能值以及响应于该请求请求配置参数的指示。配置顾问可以根据模型175提供的接口将数据打包在请求中。配置顾问可以访问在远程数据中心内注册和存储的客户数据,这些数据可以用于向模型175提供不需要针对每个请求明确提供的值。例如,远程数据中心可以访问客户SLA。附加地或替代地,配置顾问可以为一个或多个参数存储“合理”值范围。例如,高速缓存大小的合理值范围可以是2GB到10GB,从而反映已知在客户部署中使用的高速缓存大小。请求中未提供、未知和/或不固定的值,或具有超出合理范围的值的请求中的值可以由配置顾问替换为参数值的合理范围内的值。在实施例中,可以随机选择合理范围内的替换值。在另一个实施例中,位于合理范围内的预配置的默认值可以用于替换或提供缺失值或超出范围的值。
在从模型接收到相关值集合时,配置顾问可以在响应推荐请求之前重新打包输出。在实施例中,配置顾问可以通过发送如从模型接收到的值的向量来响应请求。在另一个实施例中,配置顾问可以仅返回为其请求推荐的值。
3.配置顾问的操作
图2A和2B是一起图示根据一个或多个实施例的确定推荐工作负载的流程图。可以省略、修改或重新布置本文参考图2A和2B描述的操作。可以执行图2A和2B中未示出的操作来代替所示操作或作为其附加。因此,如本文描述的操作不应被解释为限制任何权利要求的范围。
现在参考图2A,通过对接收到的根据经验确定为相关的值集合执行回归来训练机器学习分析模型172(操作205)。训练数据可以包括可表示QoS水平的配置参数值、工作负载值和性能值的值。如前所述,可以通过经验测试和观察所得系统性能来收集训练数据。系统在使用配置参数集合配置系统时执行工作负载,并观察所得性能。每个针对配置、工作负载和性能观察到的值组合可以表示单个、一致的系统状态。许多系统状态是模型训练过程的输入。模型可以采用向量相似性评估技术来创建可以表示一致系统状态集合的模型。请参见下面标题为多变量状态估计(MSET)模型的部分,了解其中训练和使用特定机器学习分析模型的实施例的更多细节。
在另一个实施例中,训练机器学习模型可以包括构建表示参数值之间的关系的多项式方程。多项式方程的每一项可以对应于训练数据集中表示的特定参数。用作项系数的变量可以表示对应参数的值。将数据应用于模型可以包括用每个参数的值代替其对应的项变量并求解未知的参数值。
一旦被训练,经机器训练的分析模型175就将配置、工作负载值和性能值作为输入。但是,可以知道两个输入集合,并且可以估计第三集合。可以为第三估计值集合输出推荐值。在实施例中,第三输入集合可以具有空(null)值。
在实施例中,配置顾问170接收对工作的估计工作负载值的请求(操作210)。该请求指定配置参数值集合。
在服务提供商专业人员与配置门户交互以请求配置推荐的实施例中,可以提交请求以为客户准备第一次安装文件网关。推荐值可以用于配置新安装。此外,专业人员可以响应接收到关于性能不佳的抱怨而提交请求。
在配置顾问被提供为可通过网络访问的服务的实施例中,可以在检测到系统资源的变化时或者响应于确定性能已经降级而动态生成对配置推荐的请求。
在该示例流程中,工作负载值被请求作为模型的输出。配置顾问选择工作负载值的初始候选集合(操作220)。配置顾问可以从合理值范围中选择候选工作负载值以作为输入提供给模型。候选工作负载值的合理范围可以基于用于收集如上所述的训练数据的值。
随推荐请求接收到的配置参数和工作负载值的初始候选集合被提交给模型。配置顾问接收性能值集合作为模型的输出(操作230)。性能值集合表示根据候选工作负载值集合加载并根据输入配置参数值配置的系统的估计性能。
如前所述,可以用从以已知配置和工作负载运行中收集的数据来训练模型。如果期望配置未由训练模型表示,那么可以通过运行模拟来收集数据。作为示例,可以根据配置参数来配置系统。可以执行模仿真实世界环境的操作。这些操作可以包括对于特定日期的时间和/或特定客户端系统典型的计算工作负载、读取、写入和网络I/O。在真实世界环境中实际完成操作所花费的时间量可以被记录为估计的性能值。
配置顾问确定估计的性能值是否满足所需的性能值(操作240)。如果估计的性能值满足或超过所需的性能值,那么提交给模型的候选工作负载值集合可以作为推荐的工作负载值返回(操作245)。在实施例中,返回的推荐可以呈现在配置门户的显示器上。在另一个实施例中,返回的推荐可以被传输到生成请求的系统。
如果估计的性能值不满足所需的性能值,那么从合理值范围中选择新的候选工作负载值集合作为当前候选工作负载值集合(图2B的操作250)。在实施例中,可以随机选择当前候选工作负载值。在另一个实施例中,如果性能值不满足先前候选工作负载值集合的所需性能值,那么可以选择表示比先前候选工作负载值集合更少工作的当前候选工作负载值集合。
当前候选工作负载值集合和最初提供的配置参数值被发送到模型(操作260)。获得更新后的性能值集合作为模型的输出(操作270)。将更新后的性能值集合与所需性能值进行比较(操作280)。例如,如果观察到的时延为75ms。并且所需的性能目标是50ms的时延,那么估计的性能值不满足所需值。如果更新后的性能值集合满足或超过所需性能值,那么配置顾问可以返回当前候选工作负载值集合作为推荐的工作负载值(操作290)。如果更新后的性能值集合再次不满足所需的性能值,那么该过程可以用被选择作为当前候选性能值集合的新的候选工作负载值集合进行重复。如果模型没有为在合理范围内的任何候选工作负载值集合返回可接受的性能值,那么流程可以以错误而停止。
在另一个实施例中,不是配置顾问返回与满足或超过所需性能值的性能值相关的第一推荐的工作负载值集合,而是配置顾问可以改为从模型175请求针对大量候选工作负载值集合的性能估计,并返回与所需性能值一致的最大推荐的工作负载值。
图3A是图示根据一个或多个实施例的训练机器学习分析模型的框图。机器学习分析模型172通过接收多个数据集合来训练,其中每个数据集合中的值在测试/实验环境中相关,并且每个数据集合包括配置参数值、工作负载值和观察到的性能值。
图3B是图示根据一个或多个实施例的推荐与作为输入接收到的配置参数值和所需性能值集合相关的工作负载值集合的配置顾问170的框图。配置顾问可以向模型175提供输入值的向量,该向量包括随请求接收到的配置和所需性能值以及估计的工作负载值集合。该模型175可以产生输出向量,该输出向量包括与在输入向量中指定的配置和性能值相关的修订后的工作负载值集合。配置顾问170可以简单地将模型175指定的工作负载值返回给请求实体。
图3C是图示根据一个或多个实施例的从作为输入接收到的工作负载值和性能值集合推荐配置参数集合的配置顾问的框图。配置顾问可以向模型175提供输入值的向量,该向量包括随请求接收到的工作负载值和性能值集合以及估计的配置值集合。该模型可以产生输出向量,该输出向量包括与在输入向量中提供的工作负载和性能值相关的修订后的配置值集合。
图3D是图示根据一个或多个实施例的在给定工作负载值集合和作为输入接收到的配置参数集合的情况下估计预期性能值的配置顾问的框图。配置顾问可以向模型175提供输入值的向量,该向量包括随请求接收到的工作负载值和配置参数值集合以及估计的性能值集合。该模型可以产生输出向量,该输出向量包括与在输入向量中指定的工作负载值和配置参数值相关的修订后的性能值集合。
5.多变量状态估计(MSET)模型
MSET模型使用来自统称为非线性非参数(NLNP)回归的一类模式识别数学的预后算法来估计相关参数集合。MSET模型是可以采用向量相似性评估技术的机器学习模型。MSET模型可以包括存储n个观察向量的mxn矩阵,每个向量包括诸如高速缓存大小、平均文件大小和吞吐量的m个参数中的每一个的值。n列的每一行是表示系统的已知状态的向量。在MSET模型的训练期间,测试系统使用许多不同的配置和工作负载值组合进行测试。每个测试都使用配置有特定配置参数值集合的测试系统执行,并处理由工作负载值集合表征的特定工作负载。观察并记录系统的所得性能。对于每个这样的测试,包括特定配置、工作负载和随时间的所得性能值的一组向量作为训练数据被输入到MSET模型。
训练模型使用输入向量和已知状态矩阵产生参数值的输出向量。该模型确定输入向量与矩阵表示的已知状态的相似度,并使用这些相似度值来计算输出向量的新估计值。关于模型工作原理的更详细说明,参见“Multivariate State Estimation Technique(MSET)Based Surveillance System”,K.C.Gross、R.M.Singer、S.Wegerich和J.Mott,案件ID ANL-IN-94-135,美国专利5,764,509(1998年6月2日)。如本专利和其它出版物中所描述的,MSET模型已用于异常检测。使用MSET模型来估计配置参数值是一种新应用。
6.示例
在本部分中,我们探讨模型可以回答但过去无法回答的一些示例问题。客户可能使用2个CPU运行,这2个CPU正在访问10,000个文件。客户可能想知道,如果文件数量增加到20,000个,那么将需要添加多少个CPU,并且将需要分配多少高速缓存和本地盘空间才能维持相当的性能。CPU与特定环境中的文件数量以及特定工作负载之间没有已知的关系。
使用该模型允许使用数学上确定的关系来估计表示特定客户环境的相关值,从而避免使用特定于客户的值进行实验以凭经验进行测试的需要。实验室环境中的经验测试可以测试某些组合,但不是全部。此外,实验室测试可能不会在特定工作负载下运行。来自训练数据的推论可以用于预测未经经验测试的参数值组合的结果。
7.计算机网络和云网络
在一个或多个实施例中,计算机网络提供节点集合之间的连接性。节点可以是在彼此本地的和/或彼此远离。节点通过链路的集合连接。链路的示例包括同轴电缆、非屏蔽双绞线、铜缆、光纤和虚拟链路。
节点子集实现计算机网络。这样的节点的示例包括交换机、路由器、防火墙和网络地址转换器(NAT)。另一个节点子集使用计算机网络。这样的节点(也称为“主机”)可以执行客户端进程和/或服务器进程。客户端进程做出对计算服务(诸如,特定应用的执行和/或特定量的数据的存储)的请求。服务器进程通过执行所请求的服务和/或返回对应的数据来响应。
计算机网络可以是物理网络,包括通过物理链路连接的物理节点。物理节点是任何数字设备。物理节点可以是特定于功能的硬件设备,诸如硬件交换机、硬件路由器、硬件防火墙和硬件NAT。附加地或替代地,物理节点可以是被配置为执行各种虚拟机和/或执行相应功能的应用的通用机器。物理链路是连接两个或更多个物理节点的物理介质。链路的示例包括同轴电缆、非屏蔽绞合电缆、铜缆和光纤。
计算机网络可以是覆盖网络。覆盖网络是在另一个网络(诸如,物理网络)之上实现的逻辑网络。覆盖网络中的每个节点对应于底层网络中的相应节点。因此,覆盖网络中的每个节点与覆盖地址(寻址到覆盖节点)和底层地址(寻址实现覆盖节点的底层节点)两者相关联。覆盖节点可以是数字设备和/或软件进程(诸如虚拟机、应用实例或线程)。连接覆盖节点的链路被实现为通过底层网络的隧道。隧道任一端处的覆盖节点将它们之间的底层多跳路径视为单个逻辑链路。隧道处理(tunneling)通过封装和解封装来执行。
在实施例中,客户端可以位于计算机网络的本地和/或远离计算机网络。客户端可以通过其它计算机网络(诸如专用网络或互联网)访问计算机网络。客户端可以使用通信协议(诸如超文本传输协议(HTTP))将请求传送到计算机网络。通过诸如客户端接口(诸如web浏览器)、程序接口或应用编程接口(API)之类的接口来传送请求。
在实施例中,计算机网络提供客户端和网络资源之间的连接。网络资源包括被配置为执行服务器进程的硬件和/或软件。网络资源的示例包括处理器、数据存储装置、虚拟机、容器和/或软件应用。网络资源在多个客户端之间共享。客户端彼此独立地从计算机网络请求计算服务。网络资源按需动态分配给请求和/或客户端。分配给每个请求和/或客户端的网络资源可以基于例如(a)由特定客户端请求的计算服务,(b)由特定租户请求的聚合计算服务和/或(c)计算机网络的所请求的聚合计算服务来扩大或缩小。这种计算机网络可以被称为“云网络”。
在实施例中,服务提供商向一个或多个最终用户提供云网络。云网络可以实现各种服务模型,包括但不限于软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。在SaaS中,服务提供商向最终用户提供使用服务提供商的正在网络资源上执行的应用的能力。在PaaS中,服务提供商向最终用户提供将定制应用部署到网络资源上的能力。可以使用由服务提供商支持的编程语言、库、服务和工具来创建定制应用。在IaaS中,服务提供商向最终用户提供供应由网络资源提供的处理、存储、网络和其它基本计算资源的能力。可以在网络资源上部署任何任意应用,包括操作系统。
在实施例中,计算机网络可以实现各种部署模型,包括但不限于私有云、公共云和混合云。在私有云中,网络资源被供应给一个或多个实体的特定组独占使用(如本文所使用的术语“实体”是指企业、组织、个人或其它实体)。网络资源可以在特定实体组的处所本地和/或远离特定实体组的处所。在公共云中,云资源被供应给彼此独立的多个实体(也称为“租户”或“客户”)。计算机网络及其网络资源由与不同租户对应的客户端访问。这样的计算机网络可以被称为“多租户计算机网络”。几个租户可以在不同时间和/或相同时间使用相同的特定网络资源。网络资源可以在租户的处所本地和/或远离租户的处所。在混合云中,计算机网络包括私有云和公共云。私有云和公共云之间的接口允许数据和应用的可移植性。存储在私有云处的数据和存储在公共云处的数据可以通过接口交换。在私有云处实现的应用和在公共云处实现的应用可能具有彼此依赖性。可以通过接口执行从私有云处的应用于公共云处的应用(反之亦然)的调用。
在实施例中,多租户计算机网络的租户彼此独立。例如,一个租户的业务或操作可以与另一个租户的业务或操作分离。不同的租户可能对计算机网络具有不同的网络要求。网络要求的示例包括处理速度、数据存储量、安全要求、性能要求、吞吐量要求、时延要求、弹性要求、服务质量(QoS)要求、租户隔离和/或一致性。相同计算机网络可能需要实现由不同租户所要求的不同网络要求。
在一个或多个实施例中,在多租户计算机网络中,实现租户隔离以确保不同租户的应用和/或数据彼此不共享。可以使用各种租户隔离方法。
在实施例中,每个租户与租户ID相关联。多租户计算机网络的每个网络资源用租户ID标记。仅当租户和特定网络资源与相同租户ID相关联时,才允许该租户访问特定网络资源。
在实施例中,每个租户与租户ID相关联。由计算机网络实现的每个应用用租户ID标记。附加地或替代地,由计算机网络存储的每个数据结构和/或数据集用租户ID标记。仅当租户和特定应用、数据结构和/或数据集与相同租户ID相关联时,才允许租户访问特定应用、数据结构和/或数据集。
作为示例,由多租户计算机网络实现的每个数据库可以用租户ID标记。只有与对应租户ID相关联的租户才可以访问特定数据库的数据。作为另一个示例,由多租户计算机网络实现的数据库中的每个条目可以用租户ID标记。只有与对应租户ID相关联的租户才可以访问特定条目的数据。但是,数据库可以由多个租户共享。
在实施例中,订阅列表指示哪些租户有权访问哪些应用。对于每个应用,存储被授权访问该应用的租户的租户ID列表。仅当租户的租户ID被包含在与特定应用对应的订阅列表中时,才允许该租户访问特定应用。
在实施例中,与不同租户对应的网络资源(诸如数字设备、虚拟机、应用实例和线程)被隔离到由多租户计算机网络维护的特定于租户的覆盖网络。作为示例,来自租户覆盖网络中的任何源设备的数据包可以仅被发送到相同租户覆盖网络内的其它设备。封装隧道用于禁止从租户覆盖网络上的源设备到其它租户覆盖网络中的设备的任何传输。具体而言,从源设备接收的数据包被封装在外部数据包内。外部数据包从第一封装隧道端点(与租户覆盖网络中的源设备通信)发送到第二封装隧道端点(与租户覆盖网络中的目的地设备通信)。第二封装隧道端点对外部数据包进行解封装,以获得由源设备发送的原始数据包。原始数据包从第二封装隧道端点发送到相同特定覆盖网络中的目的地设备。
8.硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备来实现。专用计算设备可以是硬连线的以执行本技术,或者可以包括被永久性地编程以执行本技术的数字电子设备,诸如一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行本技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC、FPGA或NPU与定制的编程组合来实现本技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或结合硬连线和/或程序逻辑来实现技术的任何其它设备。
例如,图4是图示可以在其上实现本发明的实施例的计算机系统400的框图。计算机系统400包括总线402或用于传送信息的其它通信机制以及与总线402耦合用于处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
计算机系统400还包括耦合到总线402用于存储信息和要由处理器404执行的指令的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器406也可以用于存储在要由处理器404执行的指令的执行期间的临时变量或其它中间信息。当这种指令被存储在处理器404可访问的非暂态存储介质中时,这种指令使计算机系统400成为被定制用于执行指令中指定的操作的专用机器。
计算机系统400还包括耦合到总线402用于存储静态信息和处理器404的指令的只读存储器(ROM)408或其它静态存储设备。诸如磁盘或光盘之类的存储设备410被提供并且被耦合到总线402,以用于存储信息和指令。
计算机系统400可以经由总线402耦合到用于向计算机用户显示信息的显示器412,诸如阴极射线管(CRT)、液晶显示器(LCD)或发光二极管(LED)。包括字母数字键和其它键的输入设备414耦合到总线402,用于将信息和命令选择传送到处理器404。另一种类型的用户输入设备是光标控件416,诸如鼠标、轨迹球或光标方向键,用于向处理器404传送方向信息和命令选择并且用于控制显示器412上的光标移动。这种输入设备典型地具有两个轴(第一轴(例如,x)和第二轴(例如,y))上的两个自由度,以允许设备在平面中指定位置。
计算机系统400可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,所述定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统结合使计算机系统400成为专用机器或将计算机系统400编程为专用机器。根据一个实施例,本文的技术由计算机系统400响应于处理器404执行主存储器406中包含的一条或多条指令的一个或多个序列而执行。这些指令可以从另一个存储介质(诸如存储设备410)读取到主存储器406中。在主存储器406中包含的指令序列的执行使处理器404执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令或与软件指令组合使用。
如本文使用的术语“存储介质”是指存储有使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态盘,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带、内容可寻址存储器(CAM)和三态内容可寻址存储器(TCAM)。
存储介质与传输介质不同但可以与传输介质结合使用。传输介质参与在存储介质之间传递信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含有总线402的电线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信期间生成的那些。
各种形式的介质可以涉及将一条或多条指令的一个或多个序列携带到处理器404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用网络接口卡(NIC)通过网络线路或使用调制解调器通过电话线路发送指令。计算机系统400本地的NIC可以在网络线路上接收数据并将数据放置在总线402上。计算机系统400本地的调制解调器可以在电话线上接收数据并使用红外线发射器将数据转换为红外线信号。红外线检测器可以接收红外线信号中携带的数据,并且适当的电路系统可以将数据放置在总线402上。总线402将数据携带到主存储器406,处理器404从主存储器406中检索并执行指令。由主存储器406接收的指令可以可选地在由处理器404执行之前或之后存储在存储设备410上。
计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,其中网络链路420连接到本地网络422。例如,通信接口418可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器、或向对应类型的电话线提供数据通信连接的调制解调器。作为另一个示例,通信接口418可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何这种实现中,通信接口418发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路420可以通过本地网络422提供到主计算机424或到由互联网服务提供商(ISP)426操作的数据设备的连接。ISP 426又通过现在通常称为“互联网”428的全球分组数据通信网络提供数据通信服务。本地网络422和互联网428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路420上并且通过通信接口418的信号是传输介质的示例形式,这些信号将数字数据携带到计算机系统400或携带来自计算机系统400的数字数据。
计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在互联网示例中,服务器430可以通过互联网428、ISP 426、本地网络422和通信接口418传输对于应用程序的所请求代码。
接收到的代码可以在它被接收时由处理器404执行,和/或存储在存储设备410或其它非易失性存储装置中以供以后执行。
实施例针对具有一个或多个设备的系统,一个或多个设备包括硬件处理器并且被配置为执行本文描述的和/或以下权利要求中任一项所述的任何操作。
在实施例中,非暂态计算机可读存储介质包括指令,当由一个或多个硬件处理器执行时,所述指令使得执行本文描述的和/或权利要求中任一项所述的任何操作。
根据一个或多个实施例,可以使用本文描述的特征和功能的任何组合。在前面的说明书中,已经参考因实现而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合(以这种权利要求发出的具体形式,包括任何后续的更正)的字面和等同范围。
Claims (21)
1.一种方法,包括:
通过训练机器学习分析模型来创建经机器训练的分析模型以识别配置参数值、工作负载值和性能值之间的相关性,性能值表示性能水平;
在配置顾问处接收对推荐的工作负载值集合的第一请求,该推荐的工作负载值集合表示能够由配置有第一配置参数值集合的系统以指定的性能水平执行的工作量;
由配置顾问选择表示系统要执行的第一工作量的第一工作负载值集合;
由配置顾问向经机器训练的分析模型提交第一输入,包括第一配置参数值集合和第一工作负载值集合;
由配置顾问接收来自经机器训练的分析模型的输出,包括与第一配置参数值集合和第一工作负载值集合对应的第一性能值集合;
由配置顾问确定第一性能值集合不满足指定的性能水平;
由配置顾问选择表示系统要执行的第二工作量的第二工作负载值集合;
向经机器训练的分析模型提交第二输入,包括第一配置参数值集合和第二工作负载值集合;
从经机器训练的分析模型接收与第一配置参数值集合和第二工作负载值集合对应的第二性能值集合作为输出;
由配置顾问确定第二性能值集合满足或超过所述指定的性能水平;以及
用包括第二工作负载值集合的推荐的工作负载值集合响应第一请求。
2.如权利要求1所述的方法,其中第一配置参数值集合用于配置第一网络上的应用网关,该应用网关将应用请求发送到第二网络上的远程应用服务器,其中第一网络在物理上和虚拟上与第二网络不同。
3.如权利要求2所述的方法,其中应用网关向在与第一网络相同的虚拟网络内运行的应用提供文件服务。
4.如权利要求2所述的方法,其中远程应用服务器向应用网关提供存储对象接口,并且应用网关通过调用由远程应用服务器提供的存储对象接口来服务文件服务请求。
5.如权利要求1所述的方法,其中应用网关的配置参数值包括至少多个以下各项的值:
(a)数据高速缓存大小,
(b)元数据大小,
(c)日志文件大小,
(d)线程的数量,
(e)内核数量和对应的内核速度,
(f)存储器大小,
(g)盘控制器模型,
(h)网卡型号,以及
(i)应用网关和远程服务器之间的连接的带宽。
6.如权利要求1至5中的任一项所述的方法,其中指定的性能水平由以下各项中的至少一项的性能值表示:
(a)I/O时延,
(b)I/O吞吐量,以及
(c)每秒的I/O操作,以及
(d)IO超时的数量。
7.如权利要求1-6中的任一项所述的方法,其中工作负载值包括至少多个以下各项:
(a)每单位时间并发用户访问的数量,
(b)I/O请求块大小,
(c)每个文件系统的文件数量,
(d)写入操作与读取操作的比率,
(e)文件元数据读取操作的数量,
(f)文件元数据写入操作的数量,
(g)文件写入操作的数量,以及
(h)文件附加操作的数量。
8.如权利要求1-7中的任一项所述的方法,其中训练机器学习分析模型包括向机器学习分析模型提交多个输入值集合,每个输入值集合包括配置参数值、工作负载值和性能值,其中性能值是在配置有相应配置参数值的应用网关上运行由相应工作负载值表示的工作量时根据经验观察到的。
9.如权利要求1-8中的任一项所述的方法,所述方法还包括:
接收对推荐配置的第二请求,该推荐配置能够在由第三性能值集合表示的指定性能水平执行由指定的第三工作负载值集合表示的期望工作量;
向经机器训练的分析模型提供第三工作负载值集合和第三性能值集合作为输入;
从经机器训练的分析模型接收与第三工作负载值集合和第三性能值集合对应的第二配置参数值集合作为输出;
用包括第二配置参数值集合的推荐配置来响应第二请求。
10.如权利要求1所述的方法,所述方法还包括:
当由配置有第三配置参数值集合的应用网关执行由第三工作负载值集合表示的第三工作量时,接收对可实现性能水平的估计的第三请求;
向经机器训练的分析模型提供第三配置参数值集合和第三工作负载值集合作为输入;
从经机器训练的分析模型接收与第三配置参数值集合和第三工作负载值集合对应的第三性能值集合作为输出;以及
用包括第三性能值集合的可实现性能水平的估计来响应第三请求。
11.如权利要求1所述的方法,所述方法还包括:
在使用包括第二工作负载值集合的推荐工作负载响应第一请求之前:
由配置顾问选择表示系统要执行的第三工作量的第三工作负载值集合;
向经机器训练的分析模型提交第三输入,包括第一配置参数值集合和第三工作负载值集合;
从经机器训练的分析模型接收与第一配置参数值集合和第三工作负载值集合对应的第三性能值集合作为输出;
由配置顾问确定第三性能值集合满足或超过指定的性能水平;
确定由第二工作负载值集合表示的第二工作量大于由第三工作负载值集合表示的第三工作量。
12.如权利要求1所述的方法,其中:
第一配置参数值集合用于配置第一网络上的应用网关,该应用网关将应用请求发送到第二网络上的远程应用服务器,其中第一网络在物理上和虚拟上与第二网络不同;
远程应用服务器向应用网关提供存储对象接口,并且应用网关通过调用远程应用服务器提供的存储对象接口来服务文件服务请求;
应用网关的配置参数值包括至少多个以下各项的值:
(a)数据高速缓存大小,
(b)元数据大小,
(c)日志文件大小,
(d)线程的数量,
(e)内核数量和对应的内核速度,
(f)存储器大小,
(g)盘控制器模型,
(h)网卡型号,以及
(i)应用网关和远程服务器之间的连接的带宽;
指定的性能水平由以下各项中的至少一项的性能值表示:
(a)I/O时延,
(b)I/O吞吐量,
(c)每秒的I/O操作,以及
(d)IO超时的数量;
工作负载值包括至少多个以下各项:
(a)每单位时间并发用户访问的数量,
(b)I/O请求块大小,
(c)每个文件系统的文件数量,
(d)写入操作与读取操作的比率,
(e)文件元数据读取操作的数量,
(f)文件元数据写入操作的数量,
(g)文件写入操作的数量,以及
(h)文件附加操作的数量;
训练机器学习分析模型来创建经机器训练的分析模型包括向机器学习分析模型提交多个输入值集合,每个输入值集合包括配置参数值、工作负载值和性能值,其中性能值是在配置有相应配置参数值的应用网关上运行由相应工作负载值表示的工作量时根据经验观察到的;以及
所述方法还包括:
接收对推荐配置的第二请求,该推荐配置能够在由第三性能值集合表示的指定性能水平执行由指定的第三工作负载值集合表示的期望工作量;
向经机器训练的分析模型提供第三工作负载值集合和第三性能值集合作为输入;
从经机器训练的分析模型接收与第三工作负载值集合和第三性能值集合对应的第二配置参数值集合作为输出;
用包括第二配置参数值集合的推荐配置来响应第二请求;
当由配置有第三配置参数值集合的应用网关执行由第四工作负载值集合表示的第三工作量时,接收对可实现性能水平的估计的第三请求;
向经机器训练的分析模型提供第三配置参数值集合和第三工作负载值集合作为输入;
从经机器训练的分析模型接收与第三配置参数值集合和第四工作负载值集合对应的第四性能值集合作为输出;以及
用包括第四性能值集合的可实现性能水平的估计来响应第三请求;
在使用包括第二工作负载值集合的推荐工作负载响应第一请求之前:
由配置顾问选择表示系统要执行的第五工作量的第五工作负载值集合;
向经机器训练的分析模型提交第三输入,包括第一配置参数值集合和第五工作负载值集合;
从经机器训练的分析模型接收与第一配置参数值集合和第五工作负载值集合对应的第五性能值集合作为输出;
由配置顾问确定第五性能值集合满足或超过指定的性能水平;以及
确定由第二工作负载值集合表示的第二工作量大于由第五工作负载值集合表示的第五工作量。
13.一种或多种非暂态机器可读介质,存储指令,所述指令在由一个或多个处理器执行时,所得:
通过训练机器学习分析模型来创建经机器训练的分析模型以识别配置参数值、工作负载值和性能值之间的相关性,性能值表示性能水平;
在配置顾问处接收对推荐的工作负载值集合的第一请求,该推荐的工作负载值集合表示能够由配置有第一配置参数值集合的系统以指定的性能水平执行的工作量;
由配置顾问选择表示系统要执行的第一工作量的第一工作负载值集合;
由配置顾问向经机器训练的分析模型提交第一输入,包括第一配置参数值集合和第一工作负载值集合;
由配置顾问接收来自经机器训练的分析模型的输出,包括与第一配置参数值集合和第一工作负载值集合对应的第一性能值集合;
由配置顾问确定第一性能值集合不满足所述指定的性能水平;
由配置顾问选择表示系统要执行的第二工作量的第二工作负载值集合;
向经机器训练的分析模型提交第二输入,包括第一配置参数值集合和第二工作负载值集合;
从经机器训练的分析模型接收与第一配置参数值集合和第二工作负载值集合对应的第二性能值集合作为输出;
由配置顾问确定第二性能值集合满足或超过所述指定的性能水平;以及
用包括第二工作负载值集合的推荐的工作负载值集合响应第一请求。
14.如权利要求13所述的介质,其中第一配置参数值集合用于配置第一网络上的应用网关,该应用网关将应用请求发送到第二网络上的远程应用服务器,其中第一网络在物理上和虚拟上与第二网络不同。
15.如权利要求14所述的介质,其中应用网关向在与第一网络相同的虚拟网络内运行的应用提供文件服务。
16.如权利要求14所述的介质,其中远程应用服务器向应用网关提供存储对象接口,并且应用网关通过调用由远程应用服务器提供的存储对象接口来服务文件服务请求。
17.如权利要求13-16中的任一项所述的介质,其中训练机器学习分析模型包括向机器学习分析模型提交多个输入值集合,每个输入值集合包括配置参数值、工作负载值和性能值,其中性能值是在配置有相应配置参数值的应用网关上运行由相应工作负载值表示的工作量时根据经验观察到的。
18.如权利要求13-17中的任一项所述的介质,其中所述指令还使得:
接收对推荐配置的第二请求,该推荐配置能够在由第三性能值集合表示的指定性能水平执行由指定的第三工作负载值集合表示的期望工作量;
向经机器训练的分析模型提供第三工作负载值集合和第三性能值集合作为输入;
从经机器训练的分析模型接收与第三工作负载值集合和第三性能值集合对应的第二配置参数值集合作为输出;
用包括第二配置参数值集合的推荐配置来响应第二请求。
19.如权利要求13所述的介质,其中所述指令还使得:
当由配置有第三配置参数值集合的应用网关执行由第三工作负载值集合表示的第三工作量时,接收对可实现性能水平的估计的第三请求;
向经机器训练的分析模型提供第三配置参数值集合和第三工作负载值集合作为输入;
从经机器训练的分析模型接收与第三配置参数值集合和第三工作负载值集合对应的第三性能值集合作为输出;以及
用包括第三性能值集合的可实现性能水平的估计来响应第三请求。
20.一种系统,包括:
至少一个设备,包括硬件处理器;
所述系统被配置为执行包括以下的步骤:
通过训练机器学习分析模型来创建经机器训练的分析模型以识别配置参数值、工作负载值和性能值之间的相关性,性能值表示性能水平;
在配置顾问处接收对推荐的工作负载值集合的第一请求,该推荐的工作负载值集合表示能够由配置有第一配置参数值集合的系统以指定的性能水平执行的工作量;
由配置顾问选择表示系统要执行的第一工作量的第一工作负载值集合;
由配置顾问向经机器训练的分析模型提交第一输入,包括第一配置参数值集合和第一工作负载值集合;
由配置顾问接收来自经机器训练的分析模型的输出,包括与第一配置参数值集合和第一工作负载值集合对应的第一性能值集合;
由配置顾问确定第一性能值集合不满足所述指定的性能水平;
由配置顾问选择表示系统要执行的第二工作量的第二工作负载值集合;
向经机器训练的分析模型提交第二输入,包括第一配置参数值集合和第二工作负载值集合;
从经机器训练的分析模型接收与第一配置参数值集合和第二工作负载值集合对应的第二性能值集合作为输出;
由配置顾问确定第二性能值集合满足或超过所述指定的性能水平;以及
用包括第二工作负载值集合的推荐的工作负载值集合响应第一请求。
21.一种系统,包括:
用于通过训练机器学习分析模型来创建经机器训练的分析模型以识别配置参数值、工作负载值和性能值之间的相关性的部件,性能值表示性能水平;
用于在配置顾问处接收对推荐的工作负载值集合的第一请求的部件,该推荐的工作负载值集合表示能够由配置有第一配置参数值集合的系统以指定的性能水平执行的工作量;
用于由配置顾问选择表示系统要执行的第一工作量的第一工作负载值集合的部件;
用于由配置顾问向经机器训练的分析模型提交第一输入,包括第一配置参数值集合和第一工作负载值集合的部件;
用于由配置顾问接收来自经机器训练的分析模型的输出,包括与第一配置参数值集合和第一工作负载值集合对应的第一性能值集合的部件;
用于由配置顾问确定第一性能值集合不满足指定的性能水平的部件;
用于由配置顾问选择表示系统要执行的第二工作量的第二工作负载值集合的部件;
用于向经机器训练的分析模型提交第二输入,包括第一配置参数值集合和第二工作负载值集合的部件;
用于从经机器训练的分析模型接收与第一配置参数值集合和第二工作负载值集合对应的第二性能值集合作为输出的部件;
用于由配置顾问确定第二性能值集合满足或超过指定的性能水平的部件;以及
用于用包括第二工作负载值集合的推荐的工作负载值集合响应第一请求的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/517,236 | 2019-07-19 | ||
US16/517,236 US10958521B2 (en) | 2019-07-19 | 2019-07-19 | Method and apparatus for configuring a cloud storage software appliance |
PCT/US2020/042153 WO2021016019A1 (en) | 2019-07-19 | 2020-07-15 | Method and apparatus for configuring a cloud storage software appliance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114208126A true CN114208126A (zh) | 2022-03-18 |
CN114208126B CN114208126B (zh) | 2024-07-19 |
Family
ID=72047001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080047410.5A Active CN114208126B (zh) | 2019-07-19 | 2020-07-15 | 用于配置云存储软件设备的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10958521B2 (zh) |
EP (1) | EP3999969A1 (zh) |
JP (2) | JP7445740B2 (zh) |
CN (1) | CN114208126B (zh) |
WO (1) | WO2021016019A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461676B2 (en) * | 2019-07-31 | 2022-10-04 | EMC IP Holding Company LLC | Machine learning-based recommendation engine for storage system usage within an enterprise |
US11178065B2 (en) * | 2019-08-07 | 2021-11-16 | Oracle International Corporation | System and methods for optimal allocation of multi-tenant platform infrastructure resources |
US11586522B2 (en) * | 2020-02-26 | 2023-02-21 | Oracle International Corporation | Pattern-recognition enabled autonomous configuration optimization for data centers |
US11797353B2 (en) * | 2020-10-29 | 2023-10-24 | EMC IP Holding Company LLC | Method and system for performing workloads in a data cluster |
US11722380B2 (en) * | 2020-11-10 | 2023-08-08 | Accenture Global Solutions Limited | Utilizing machine learning models to determine customer care actions for telecommunications network providers |
CN112804254B (zh) * | 2021-02-07 | 2022-10-28 | 成都薯片科技有限公司 | 请求检测方法、装置、电子设备及存储介质 |
US11475043B2 (en) * | 2021-03-05 | 2022-10-18 | International Business Machines Corporation | Machine learning based application of changes in a target database system |
US20240152501A1 (en) * | 2022-11-04 | 2024-05-09 | Dell Products L.P. | Managing transaction consistency in distributed databases |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383655A (zh) * | 2012-01-13 | 2013-11-06 | 埃森哲环球服务有限公司 | 用于在qos感知云中管理合并的工作负载的性能干扰模型 |
US20150379420A1 (en) * | 2014-06-27 | 2015-12-31 | Netapp, Inc. | Methods for provisioning workloads in a storage system using machine learning and devices thereof |
US20150379423A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Feature processing recipes for machine learning |
US20170078164A1 (en) * | 2015-09-14 | 2017-03-16 | International Business Machines Corporation | I/o stack modeling for problem diagnosis and optimization |
CN108496324A (zh) * | 2016-01-18 | 2018-09-04 | 华为技术有限公司 | 云工作负载发放系统和方法 |
CN109634924A (zh) * | 2018-11-02 | 2019-04-16 | 华南师范大学 | 基于机器学习的文件系统参数自动调优方法及系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764509A (en) | 1996-06-19 | 1998-06-09 | The University Of Chicago | Industrial process surveillance system |
US7181651B2 (en) | 2004-02-11 | 2007-02-20 | Sun Microsystems, Inc. | Detecting and correcting a failure sequence in a computer system before a failure occurs |
JP5321195B2 (ja) | 2009-03-31 | 2013-10-23 | 日本電気株式会社 | 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム |
US8706962B2 (en) * | 2012-01-27 | 2014-04-22 | International Business Machines Corporation | Multi-tier storage system configuration adviser |
WO2014054230A1 (ja) | 2012-10-02 | 2014-04-10 | 日本電気株式会社 | 情報システム構築装置、情報システム構築方法および記憶媒体 |
JP2014174609A (ja) | 2013-03-06 | 2014-09-22 | Nec Corp | ハードウェア構成見積システム、ハードウェア構成見積方法及びハードウェア構成見積プログラム |
US11481652B2 (en) * | 2015-06-23 | 2022-10-25 | Gregory Knox | System and method for recommendations in ubiquituous computing environments |
US10009227B2 (en) * | 2016-02-16 | 2018-06-26 | Bank Of America Corporation | Network service provisioning tool and method |
US10708795B2 (en) * | 2016-06-07 | 2020-07-07 | TUPL, Inc. | Artificial intelligence-based network advisor |
US20180024859A1 (en) * | 2016-07-20 | 2018-01-25 | Qualcomm Incorporated | Performance Provisioning Using Machine Learning Based Automated Workload Classification |
US10585693B2 (en) * | 2016-09-30 | 2020-03-10 | Uchicago Argonne, Llc | Systems and methods for metric driven deployments to cloud service providers |
US10691491B2 (en) * | 2016-10-19 | 2020-06-23 | Nutanix, Inc. | Adapting a pre-trained distributed resource predictive model to a target distributed computing environment |
US10713073B2 (en) * | 2016-12-02 | 2020-07-14 | Microsoft Technology Licensing, Llc | Systems and methods for identifying cloud configurations |
US10187252B2 (en) * | 2016-12-27 | 2019-01-22 | Cisco Technology, Inc. | Configuring heterogeneous computing environments using machine learning |
US10389586B2 (en) * | 2017-04-04 | 2019-08-20 | International Business Machines Corporation | Configuration and usage pattern of a cloud environment based on iterative learning |
US10397370B2 (en) * | 2017-09-11 | 2019-08-27 | International Business Machines Corporation | Peer-based optimal performance configuration recommendation |
US10693737B1 (en) * | 2017-09-29 | 2020-06-23 | Charter Communications Operating, Llc | Universal alias and dependency models and network analysis |
US10601672B2 (en) * | 2017-10-24 | 2020-03-24 | Cisco Technology, Inc. | Inter-tenant workload performance correlation and recommendation |
US10810502B2 (en) * | 2017-12-01 | 2020-10-20 | Sap Se | Computing architecture deployment configuration recommendation using machine learning |
US11228489B2 (en) * | 2018-01-23 | 2022-01-18 | Qubole, Inc. | System and methods for auto-tuning big data workloads on cloud platforms |
GB201804779D0 (en) * | 2018-03-25 | 2018-05-09 | British Telecomm | Optimised metwork deployment |
US20190340095A1 (en) * | 2018-05-04 | 2019-11-07 | EMC IP Holding Company LLC | Predicting performance of applications using machine learning systems |
US20200065712A1 (en) * | 2018-08-23 | 2020-02-27 | Microsoft Technology Licensing, Llc | Efficient configuration selection for automated machine learning |
JP7290997B2 (ja) * | 2019-05-30 | 2023-06-14 | 株式会社日立製作所 | クラウド利用支援装置、及びクラウド利用支援方法 |
-
2019
- 2019-07-19 US US16/517,236 patent/US10958521B2/en active Active
-
2020
- 2020-07-15 WO PCT/US2020/042153 patent/WO2021016019A1/en unknown
- 2020-07-15 CN CN202080047410.5A patent/CN114208126B/zh active Active
- 2020-07-15 EP EP20754422.2A patent/EP3999969A1/en active Pending
- 2020-07-15 JP JP2022501296A patent/JP7445740B2/ja active Active
-
2021
- 2021-02-12 US US17/175,209 patent/US11362893B2/en active Active
-
2024
- 2024-02-26 JP JP2024026263A patent/JP2024059820A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383655A (zh) * | 2012-01-13 | 2013-11-06 | 埃森哲环球服务有限公司 | 用于在qos感知云中管理合并的工作负载的性能干扰模型 |
US20150379420A1 (en) * | 2014-06-27 | 2015-12-31 | Netapp, Inc. | Methods for provisioning workloads in a storage system using machine learning and devices thereof |
US20150379423A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Feature processing recipes for machine learning |
US20170078164A1 (en) * | 2015-09-14 | 2017-03-16 | International Business Machines Corporation | I/o stack modeling for problem diagnosis and optimization |
CN108496324A (zh) * | 2016-01-18 | 2018-09-04 | 华为技术有限公司 | 云工作负载发放系统和方法 |
CN109634924A (zh) * | 2018-11-02 | 2019-04-16 | 华南师范大学 | 基于机器学习的文件系统参数自动调优方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US11362893B2 (en) | 2022-06-14 |
US10958521B2 (en) | 2021-03-23 |
JP7445740B2 (ja) | 2024-03-07 |
US20210176127A1 (en) | 2021-06-10 |
CN114208126B (zh) | 2024-07-19 |
WO2021016019A1 (en) | 2021-01-28 |
JP2022541424A (ja) | 2022-09-26 |
US20210021469A1 (en) | 2021-01-21 |
EP3999969A1 (en) | 2022-05-25 |
JP2024059820A (ja) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114208126B (zh) | 用于配置云存储软件设备的方法和装置 | |
JP7355404B2 (ja) | クラウド・マイクロサービス埋め込み用自動チューナ | |
Rausch et al. | Optimized container scheduling for data-intensive serverless edge computing | |
US20210073680A1 (en) | Data driven methods and systems for what if analysis | |
TWI620075B (zh) | 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法 | |
EP2590113B1 (en) | On demand multi-objective network optimization | |
US11032152B2 (en) | Machine-learning based self-populating dashboard for resource utilization monitoring in hyper-converged information technology environments | |
JP2023551841A (ja) | 複雑なレガシーアプリケーションの移行 | |
JP2023508076A (ja) | アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行 | |
US20230145025A1 (en) | Modeling cloud inefficiencies using domain-specific templates | |
US20230403197A1 (en) | Optimizing the transfer of massive amounts of data using AI strategies | |
US20230205664A1 (en) | Anomaly detection using forecasting computational workloads | |
Jansen et al. | The spec-rg reference architecture for the edge continuum | |
JP2022077015A (ja) | コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(モノのインターネットデバイスオーケストレーション) | |
US10778785B2 (en) | Cognitive method for detecting service availability in a cloud environment | |
US20220129786A1 (en) | Framework for rapidly prototyping federated learning algorithms | |
US20210397469A1 (en) | Systems and methods for computing a success probability of a session launch using stochastic automata | |
Xu et al. | Modelling cloud service latency and availability using a deep learning strategy | |
CN117716373A (zh) | 基于期望的度量值提供机器学习模型 | |
US11650954B2 (en) | Replication continued enhancement method | |
JP2023550445A (ja) | データアナリティクスにおけるデータアクセスポリシの自動調整 | |
Lee et al. | A design space for dynamic service level agreements in OpenStack | |
Petrou et al. | Weighted Load Balancing Mechanisms over Streaming Big Data for Online Machine Learning. | |
US20240103896A1 (en) | Intelligently scaling database as a service resources in a cloud platform | |
US20230014344A1 (en) | Determining optimal data access for deep learning applications on a cluster |
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 |