使用业务数据的聚类过程的制作方法

文档序号:29797670发布日期:2022-04-23 19:16阅读:101来源:国知局
使用业务数据的聚类过程的制作方法
使用业务数据的聚类过程
1.相关申请的交叉引用
2.本技术是于2020年8月14日提交的标题为“使用业务数据的聚类过程”的美国申请no.16/994,085的继续,其公开内容在此通过引入方式并入本文。


背景技术:

3.云计算涉及通过网络递送按需计算服务,所述网络例如广域网(wan),诸如例如因特网和/或一个或多个局域网(lan)。它提供信息技术基础设施作为一组或多组联网元件。这样的网络元件通常经由网络向位于远程的用户提供计算能力和数据存储,并且通常被容纳在数据中心中。机器虚拟化通常用在云计算中。典型的虚拟化计算系统包括通过高速网络互连的多个计算节点。计算节点运行消耗诸如中央处理单元(cpu)、存储器、持久存储和联网资源等物理资源的虚拟机(vm)。物理资源可以驻留在一个或多个网络元件(也称为主机)上。
4.云平台向诸如网站和web应用之类的基于云的服务的发布者提供计算资源以递送基于云的服务。在这点上,云平台维护递送基于云的服务所需的信息技术基础设施,这样的计算节点运行虚拟机或其他过程。云平台向发布者租借或出售对其相应信息技术基础设施的访问,从而允许发布者使用云平台信息技术基础设施(包括运行vm或其他过程的计算节点)来提供其基于云的服务。可以动态地调整发布者租用或购买的资源量。例如,在发布者的基于云的服务的高使用时段期间,可以从云平台的信息技术基础设施租用附加虚拟机或其他过程。类似地,在发布者的应用的较低使用时段期间,可以购买或租赁来自云平台的信息技术基础设施的较少资源。通过云平台,发布者访问他们需要的任何计算资源,而不必维护和投资他们自己的信息技术基础设施。


技术实现要素:

5.本公开的各方面提供了涉及聚类过程的技术、装置和系统。作为示例,该技术包括基于vm和其他这样的过程的业务模式来对vm和其他这样的过程进行聚类。
6.本公开的一个方面涉及一种用于对过程进行聚类的方法,包括:由一个或多个处理器接收在过程集合中的每对过程之间传送和接收的业务数据;由所述一个或多个处理器基于所述业务数据生成矩阵,所述矩阵包括针对所述过程集合中的每个过程的行和列;由所述一个或多个处理器基于所述业务数据对所述矩阵进行分层聚类,所述分层聚类输出多个集群,每个集群包括所述过程集合中的一个或多个过程;以及由所述一个或多个处理器将所述多个集群合并成合并的过程集群的集合。
7.本公开的另一方面涉及一种系统,包括一个或多个计算设备;一个或多个计算机可读存储介质;以及存储在一个或多个计算机可读存储介质上的程序指令,用于由一个或多个计算设备中的至少一个计算设备执行。程序指令可以使得一个或多个计算设备:接收在过程集合中的每对过程之间传送和接收的业务数据;基于所述业务数据生成矩阵,所述矩阵包括针对所述过程集合中的每个过程的行和列;基于所述业务数据对所述矩阵进行分
层聚类,所述分层聚类输出多个集群,每个集群包括所述过程集合中的一个或多个过程;以及将所述多个集群合并成合并的过程集群的集合。
8.本公开的另一方面涉及包含程序指令的非暂时性计算机可读介质。当由一个或多个计算设备执行时,所述指令使得所述一个或多个计算设备执行以下步骤:接收在过程集合中的每对过程之间传送和接收的业务数据;基于所述业务数据生成矩阵,所述矩阵包括针对所述过程集合中的每个过程的行和列;基于所述业务数据对所述矩阵进行分层聚类,所述分层聚类输出多个集群,每个集群包括所述过程集合中的一个或多个过程;以及将所述多个集群合并成合并的过程集群的集合。
9.在一些示例中,所述合并的过程集群的集合可以在云平台上实现。
10.在一些示例中,所述矩阵中的每个条目包括由与该条目的行相对应的过程传送并且由与该条目的列相对应的过程接收的业务数据。
11.在一些示例中,所述矩阵是多维矩阵,所述多维矩阵包括级联在一起的用于每个业务数据类型的矩阵,所述多维矩阵具有维度n
×
(xn),其中,n是所述过程集合中的过程的数量,并且x是级联在一起的矩阵的数量。
12.在一些实例中,对所述矩阵进行分层聚类包括将每个过程或所述过程集群分层链接在一起。所述分层链接可以包括ward链接,所述ward链接输出树状图,所述树状图将所述过程集合中的每个过程表示为叶节点并且将所述过程集群中的每个过程集群表示为非叶节点。在一些情况下,合并所述多个集群包括在合并点处切割所述树状图。
13.在一些示例中,可以对所述合并的过程集群的集合进行聚类。
附图说明
14.图1是根据本公开的各方面的示例系统的功能图。
15.图2示出根据本公开的各方面的示例系统。
16.图3是示出根据本公开的各方面的对虚拟机进行聚类的流程图。
17.图4示出根据本公开的各方面的示例矩阵。
18.图5示出根据本公开的各方面的示例树状图。
具体实施方式
19.概述
20.本技术涉及基于各个过程的业务模式来对诸如vm的过程进行聚类,以优化集群中的过程的性能和可用性。例如,针对诸如在线应用的云服务实现的vm通常由网络架构师或云服务的发布者的其他这样的管理者来配置。在许多情况下,发布者将vm进行聚类在一起以便为云服务的一个或多个特定特征提供足够的计算功率和/或冗余。然而,集群和集群中的vm的性能不容易预测,并且集群和集群中的vm常常不以高效方式操作。例如,一个集群中的vm所经历的工作负载可能大于另一集群中的为云服务提供类似功能的vm。工作负载在集群与集群中的vm之间的这种不均匀散布可能降低云服务的性能和可用性。对于其它过程,例如容器化环境中的容器和/或作业,也会出现类似的问题。
21.为了解决这些问题,可以基于过程的操作数据来优化将过程分组为功能集群,其中集群中的过程执行类似功能。在这一方面,每个过程之间的业务可以被输入到矩阵中。矩
阵中的每个条目可以被缩放以归一化每个过程之间的业务量。可以对矩阵进行截断以减少其维数,从而简化并减少对本文所述的进一步计算的处理要求。无监督机器学习可以用于在截断矩阵上进行分层聚类,使得具有相似条目的过程被聚类在一起。分层聚类可以包括分层链接以将相似集群组合在一起以创建树状图。树状图可以将每个过程表示为叶,并且合并的过程集群可以由合并点表示,合并点也被称为非叶节点。可以在合并点处切割树状图以形成平坦集群。在一些情况下,可以执行附加聚类以进一步将相似集群合并在一起。所得到的过程集群可以在云平台的信息技术基础设施中实现以供云服务使用。
22.示例系统
23.图1示出包括多个计算设备的示例系统100,多个计算设备包括服务器计算设备110、110a、110b和客户端计算设备120、130和140,以及存储系统150。计算设备和存储系统150经由网络160连接。
24.如图1所示,计算设备110和140中的每一个可以包括一个或多个处理器、存储器、数据和指令。例如,服务器计算设备110包括一个或多个处理器172、存储器174、指令176和数据178。尽管仅示出了单个服务器计算设备的组件,但是系统100中可以包括具有与服务器计算设备110相同或不同组件的任何数量的服务器计算设备。例如,服务器计算设备110a和110b可以具有与服务器计算设备110相同或不同的组件。此外,该系统可以包括任何数量的服务器计算设备。
25.存储器174存储由一个或多个处理器172可访问的信息,包括可由(多个)处理器172读取、写入、操纵、执行或以其他方式使用的指令176和数据178。存储器174可以是能够存储由处理器可访问的信息的任何类型,包括计算设备可读介质,或存储可以借助于电子设备读取的数据的其他介质,诸如硬盘驱动器、存储卡、rom、ram、dvd或其他光盘,以及其他可写和只读存储器。系统和方法可以包括前述的不同组合,由此指令和数据的不同部分被存储在不同类型的介质上。
26.指令176可以是要由处理器172直接执行的任何指令集(诸如机器代码)或间接执行的任何指令集(诸如脚本)。例如,指令可以作为计算设备代码被存储在计算设备可读介质上。在这方面,术语“指令”和“程序”在本文中可以互换使用。指令可以以目标代码格式存储以便由处理器直接处理,或者以任何其它计算设备语言存储,包括脚本或根据需要解释或预先编译的独立源代码模块的集合。下面更详细地解释指令的过程、功能、方法和例程。
27.数据178可以由处理器172根据指令176来检索、存储或修改。作为示例,与存储器174相关联的数据178可以包括用于支持一个或多个客户端设备(例如120、130或更多)的服务的数据。这样的数据可以包括支持云服务、虚拟化、虚拟机、容器、作业、容器化环境、托管基于web的应用、文件共享服务、通信服务、游戏、共享视频或音频文件或任何其他基于联网的服务的数据。
28.一个或多个处理器172可以是任何常规处理器,例如市场上可买到的cpu。或者,一个或多个处理器可以是专用设备,诸如asic或其它基于硬件的处理器。尽管图1在功能上将计算设备110的处理器、存储器和其他元件示为在同一框内,但是本领域普通技术人员将理解,处理器、计算设备或存储器实际上可以包括可以位于或可以不位于或存储在同一物理外壳内的多个处理器、计算设备或存储器。在一个示例中,服务器计算设备110可以包括具有多个计算设备的一个或多个服务器计算设备,例如负载平衡服务器场,其与网络的不同
节点交换信息以便从其他计算设备接收数据、处理数据以及向其他计算设备传送数据。
29.服务器计算设备110可以用作提供虚拟化服务、容器化环境或其他这样的过程的服务器,包括支持一个或多个虚拟机或容器。服务器计算设备110还表示容纳多个计算设备的云计算环境,这些计算设备用作能够提供或管理虚拟机或容器化环境的主机设备。
30.网络160和居间节点可以包括各种配置和协议,包括诸如bluetooth
tm
、bluetooth
tm le、因特网、万维网、内联网、虚拟专用网、广域网、本地网络、使用一个或多个公司专有的通信协议的专用网、以太网、wifi和http以及前述的各种组合的短距离通信协议。这种通信可以由能够向和从其它计算设备传送数据的任何设备(诸如有线和/或无线网络接口)来促进。
31.如图1所示,每个客户端计算设备120、130、140可以是旨在由用户使用的个人计算设备,并且具有通常与个人计算设备结合使用的所有组件,该个人计算设备包括一个或多个处理器(例如,中央处理单元(cpu))、存储数据和指令的存储器(例如,ram和内部硬盘驱动器)、诸如显示器124、134、144的显示器(例如,具有屏幕的监视器、触摸屏、投影仪、电视机或可操作以显示信息的其他设备)、扬声器和用户输入设备126、136、146(例如,鼠标、键盘、触摸屏或麦克风)。客户端计算设备还可以包括用于记录视频流的相机、扬声器、网络接口设备以及用于将这些元件彼此连接的所有组件。尽管图1中仅示出三个客户端计算设备,但是系统100实际上可以包括任何数量的这样的设备。
32.客户端计算设备140还可以是与网络设备(例如一个或多个服务器计算设备110)相关联的工作站并且用于管理和/或维护,包括用作备份系统。在这点上,客户端计算设备140可以由网络管理员操作,该网络管理员支持、维护和管理由服务器计算设备110提供的服务。关于维护,客户端计算设备140可使网络管理员能够访问关于服务器的信息,诸如在服务器上运行并且安装更新、补丁等的软件的当前版本。它还可以用于访问关于存储系统150的信息,例如盘大小、重写率等。再次,尽管在图1中仅描绘了单个后端客户端设备140,但是系统实际上可以具有任何数量的这样的设备。
33.尽管客户端计算设备120-140可以各自包括全大小的个人计算设备,但是它们可以可选地包括能够通过诸如因特网之类的网络与服务器计算设备(诸如服务器计算设备110)无线地交换数据的移动计算设备。仅作为示例,客户端计算设备120可以是移动电话或诸如无线使能的pda、平板pc、可穿戴计算设备或系统、或能够经由因特网或其他网络获得信息的上网本之类的设备。在另一示例中,客户端计算设备130可以是可穿戴计算系统,诸如智能手表。作为示例,用户可以使用小键盘、键盘、麦克风、使用视觉信号与相机或触摸屏来输入信息。
34.如同存储器174一样,存储系统150可以是能够存储由服务器计算设备110可访问的信息的任何类型的计算机化存储,诸如硬盘驱动器、盘、存储卡、rom、ram、dvd、cd-rom、可写和只读存储器。此外,存储系统150可以包括分布式存储系统,其中数据被存储在多个不同的存储设备上,这些存储设备可以物理地位于相同或不同的地理位置。存储系统150可以经由所示的网络160连接到计算设备,和/或可以直接连接到或结合到计算设备110-140等中的任何一个。存储系统150可以存储各种类型的信息,如下面更详细描述的。该信息可以由诸如服务器设备110等一个或多个服务器计算设备和/或诸如客户端计算设备120等一个或多个客户端计算设备来检索或以其他方式访问,以执行本文所述的特征中的一些或全
部。
35.图2是根据本公开的各方面的系统200的功能框图。系统200包括可被配置成操作一个或多个虚拟机或容器化环境的主机210a和210b。例如,主机210a运行包括vm1和vm2的虚拟机230a,并且主机210b运行包括vm3和vm4的虚拟机230b。vm基本上包括不在其自己专用硬件上运行而是在可能运行多个vm的一些硬件上托管的计算机。尽管主机210a被示为执行包括vm1和vm2的vm 230a并且主机210b被示为包括vm3至vm4的托管vm 230b,但是每个主机可运行任何数量的虚拟机。另外,该系统可以包括任意数量的主机。
36.每个主机包括一个或多个处理设备、易失性存储器和非易失性存储器。例如,主机210a包括处理设备204a、易失性存储器208a和非易失性存储器212a。类似地,主机210b包括处理设备204b、易失性存储器208b和非易失性存储器212b。一个或多个主机210a、210b中的每一个可操作以运行可存储在存储器中的编程指令。主机210a可以包括诸如服务器110的服务器,并且主机210b可以包括诸如服务器110a的服务器。
37.每个主机210a、210b可以与盘通信。如图2所示,主机210a与盘250a通信,而主机210b与盘250b通信。虽然主机210a和210b被示为是分开的,但是盘可以是单个单元。此外,每个主机可以连接到多个盘。每个盘250a、250b是存储设备,其可被分区以提供由vm 230a、230b所使用的物理或虚拟存储以提供计算服务。在这点上,主机210a可以包括与vm 230a相对应的分区存储器-存储器1、存储器2,并且主机210b可以包括与vm 230b相对应的分区存储器-存储器3、存储器n。每个分区可以对应于单个vm或一组vm。
38.示例方法
39.图3是示出用于优化vm集群的方法的流程图300。如流程图300所示,该方法包括在框302处将vm数据输入到一个或多个矩阵中,在框304处截断矩阵,在框306处进行分层聚类,在框308处合并集群,以及在框310处进行附加聚类。该过程还可以包括在云平台的信息技术基础设施中实现虚拟机的所得到的集群以供云服务使用。尽管本文描述的示例涉及虚拟机聚类,但本文描述的过程和系统也可应用于其它过程。例如,为优化虚拟机集群而执行的步骤可以用于优化诸如容器化环境中的作业分配之类的过程。
40.要聚类的vm可以是用于执行在云平台上操作的发布者的云服务的vm。云平台可以执行vm,诸如主机210a上的vm1和vm2以及主机210b上的vm3和vm4。由主机执行的虚拟机的数量可以是预定义的、基于云服务的计算资源要求可变的、和/或由云平台或云服务的发布者定义的。
41.由实现云服务的vm产生、传送和/或接收的操作数据可以包括发布者或发布者的云服务的用户的机密和/或专有信息。这样的数据在此被称为“私有数据”,并且也可以被称为个人可识别信息。为了维护这样的私有数据的机密性,如本文所述的优化vm集群所依赖的操作数据可以是不包括任何这样的私有数据的信息。例如,操作数据可以包括实现云服务的vm中的每个vm之间的业务数据。业务数据可以包括指示在vm之间传送的业务量(诸如多个分组、比特、字节)或vm之间传送的其他此类度量的一个或多个值。在其他过程正被分配的情况下,业务数据可以包括指示在每个过程之间传送的业务量的一个或多个值。例如,业务数据可以包括指示在作业、容器和/或容器环境之间传送的业务量的值
42.如框302所示,与vm相关联的操作数据可以被输入到一个或多个矩阵中。例如,可以从vm在其上执行的一个或多个主机向诸如客户端计算设备140之类的客户端计算设备提
供业务数据。或者,业务数据可以由主机记录并且存储在中央位置,例如存储系统150或主机中的内部存储器,客户端计算设备140可以从所述中央位置拉取数据或请求将该数据转发到该中央位置。尽管上述实施例描述了向客户端计算设备提供用于执行本文描述的方法的业务数据,但是这些方法可以由(多个)主机和/或诸如服务器计算设备110之类的其他服务器计算设备来执行。
43.图4示出了通过输入用于实现云服务的vm集合(vm1和vm2、vm3和vm4)的数据而形成的示例矩阵401。矩阵的大小由经历集群优化的vm的数量确定。例如,如果“n”个vm正在经历集群优化,则矩阵的大小可以是n
×
n。矩阵401的大小是4
×
4,因为四个vm-vm1和vm2、vm3和vm4被优化。尽管在矩阵401中示出与实现云服务的vm的数量相对应的4个vm,但是该矩阵可以小于实现云服务的vm的总数。例如,根据本文描述的技术,可以仅选择实现云服务的一部分vm用于集群优化。
44.矩阵的行可以表示来自vm的业务量,并且每列可以表示由vm接收到的业务量。例如,条目vm
1-2
表示从vm1到vm2并且由vm2从vm1接收的业务量。同样,条目vm
3-4
表示从vm3到vm4并且由vm4从vm3接收到的业务数据,以及条目vm
n-1
表示从vm4到vm1并且由vm1从vm4接收到的业务数据。尽管对于每对vm可以包括条目,但是为了清楚起见,矩阵401中仅示出了几个条目。尽管图4示出vm之间的业务,但是诸如作业分配之类的其他过程之间的业务量可以被进入到如本文所述的一个或多个矩阵中。
45.在一些实例中,多种类型的业务数据可以用于集群优化。在这点上,每个数据类型可以被放入其自己的矩阵中。例如,矩阵401可以包括包含字节的业务数据,而另一个4
×
4矩阵402可以包括在vm对之间传送的分组的数量。矩阵可以被级联在一起以形成多维n
×
(2)n矩阵403。尽管图4示出具有(2)n维度的矩阵,但是可以针对每种附加类型的业务数据和/或其它操作数据添加附加维度。例如,对于四种类型的业务数据,可以形成n
×
(4)n维矩阵。
46.矩阵中的条目,包括在任何级联矩阵中的每个条目,可以被缩放以使条目彼此可比较。例如,vm1可以处理比vm2更大量的处理,但是每个vm(vm1和vm2)可以处理用于云服务的相同类型的功能。为了提供两个vm之间的精确比较,可以标准化每个条目中的操作数据。例如,分位数变换可以用于将特征向量重新映射到标准均匀分布,从而有效地将值的范围变换到一致的且已知的范围,诸如[0,1]或一些其他这样的范围。
[0047]
如图3的框304所示,矩阵401可以被截断以减少矩阵的维数。例如,单值分解截断(truncatdsvd)或一些其它截断方法(诸如主分量分析(pca))可以被用于减少矩阵401中的维数。降维过程可以将特征矩阵的每一行作为采样点并且将每一列作为特征。这有助于截断(或去除)该矩阵的列(特征)空间中的最低有效方向。对于具有大量虚拟机(诸如数千个)的矩阵,维度可以减少到仅几百或更少。除了保留列(特征)空间中的最高有效方向之外,矩阵的这种截断减少了执行本文所述的附加方法步骤所需的计算量。
[0048]
如图3的框306所示,可以对被截断的矩阵执行分层聚类。分层聚类递归地将类似的单例或集群合并在一起,直到仅有一个集群为止。单例可以被认为是单个vm,而集群可以是两个或更多个vm。在一个示例中,ward链接可以用于确定在每次迭代时将哪些单例和集群合并在一起。在这点上,具有最低变化的集群和/或单例的对可以合并在一起。
[0049]
在分层聚类结束时,可以产生树状图。图5示出了包括叶节点和非叶节点的示例树
状图500。叶节点(vm1-vm8)表示vm,并且非叶节点(502-512)表示在以上关于框306的描述的链接期间形成的集群的合并点。
[0050]
如图3的框308所示,该算法可以通过合并集群来“切割”树状图以形成集群。为了决定在哪里“切割”树状图,可以使用不一致性度量。例如,对于树状图中具有高度h的给定非叶节点,如果其子树包含具有高度h={h0,h1,...}的节点并且高度的平均值是h,并且标准偏差是σ(h),则该节点的不一致性(inc)是:inc=(h-h)/σ(h)。当决定是否合并两个子树(或嵌套集群)时,不一致性度量量化新合并集群与其内的嵌套集群相比的差异程度。低值意味着合并集群将类似于其下的嵌套集群。相反,高不一致性意味着合并集群包含完全不同的嵌套集群。这最终产生不一致性度量值的分布。在这点上,不一致分布的累积分布函数的“拐点”可以用作切割阈值。具体地,“拐点”帮助识别(近似地)分布平稳的点,这帮助确定不一致性阈值的适当截止。以这种方式切割树状图产生在每个集群内部具有一致业务模式的集群。
[0051]
在一些情况下,如框310所示,可以执行另一轮聚类,以合并相似的若干集群。可以通过计算每个集群的质心(也称为特征均值)来执行附加合并。可以确定每个质心之间的相似性,并且可以使用阈值来确定两个质心是否被认为足够相似以进行合并。例如,如果相似性低于阈值,则可以合并集群。所得到的vm集群可以在云平台的信息技术基础设施中实现以供云服务使用。
[0052]
尽管已经参考特定实施例描述了本技术,但是应当理解,这些实施例仅仅是本技术的原理和应用的说明。因此,应当理解,在不背离由所附权利要求限定的本技术的精神和范围的情况下,可以对说明性实施例进行许多修改,并且可以设计出其它布置。
[0053]
除非另有说明,否则前述替代系统、方法和实例不是相互排斥的,而是可以各种组合实施以实现独特优点。由于在不背离权利要求所限定的主题的情况下可以利用上述特征的这些和其他变化和组合,因此应当通过说明而不是通过限制权利要求所限定的主题来理解实施例的上述描述。另外,本文所述的示例的提供以及措辞为“诸如”、“包括”等的条款不应被解释为将权利要求的主题限制到具体示例;相反,这些示例旨在仅示出许多可能实施例中的一个。此外,不同附图中的相同附图标记可以标识相同或相似的元件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1