管理计算机服务器能力的制作方法
【专利说明】
[0001] 本国际申请要求2013年3月15日提交的编号为13/835,294(代理案号为 007737. 00106)的美国申请的优先权,其通过引用以其整体并入本文。
技术领域
[0002] 本申请总体涉及管理计算机服务器的能力。尤其是,本公开涉及学习和预测计算 机服务器对一个或多个计算机中的会话进行负载均衡的能力。
[0003] 背景
[0004] 在可操作的环境中为终端用户提供共享的资源可能会提出对能力规划的挑战。当 系统可确保资源以及时和合理的时间期限被传递给用户以便避免过载时终端用户的体验 被优化。当系统过载或以其它方式不恰当地进行负载均衡时,系统可能不能够为用户在合 理的时间期限内提供所需的资源从而降低了终端用户的用户体验。与尝试预报和规划特定 用户需求的资源量相关的挑战有很多。现有的负载均衡系统未能充分地应对这些挑战。
[0005] 例如,在任意时刻,用户可能需求或多或少的资源。另外,用户可能不一直消耗这 些资源,而是在实际上,这些资源的消耗量和周期可随着应用更新、附加应用的安装或用户 行为的改变而变化。另外,当多个用户会话或用户共享硬件资源公共池时,挑战可能被加 剧。预测物理计算机、服务器或其它基础设施可支持的用户量常常是困难的。在一些实施 例中,管理员可先验地确定分配给每一个工作负载的硬件量。现有解决方案是不完善的并 具有不足之处。
[0006] 同时,计算机学科存在被称为计算学习理论(CLT)的分支,其中分析了机器学习 算法和它们的性能。CLT算法的性能可能变化很大;一些算法可在固定的时间期限内完成, 而其它算法可能具有概率区间。另外,CLT算法的时间复杂度可具有积极或消极结果,这 取决于算法的功能是否可在多项式时间内分别被学习。CLT算法有时可使用人工神经网络 (如,连接模型)实施。
[0007] 斯图加特神经网络模拟器(SNNS)是在斯图加特大学的并行与分布式高性能系统 研究所开发的用于神经网络的模拟器。SNNS模拟器200由四个主组件组成:模拟器内核、 图形用户界面、批处理执行界面(如,batchman)和网络编译器(如,snns2 C,其采取一些输 入并将所训练的网络文件生成为C源码)。参考图2,模拟器核组件在神经网络的内部网络 数据结构上操作并在其上执行操作。可建立在内核之上的图形用户界面给出了神经网络的 图形表示并在模拟运行期间控制内核,其中包括以各种方式直接创建、操纵和可视化复杂 的神经网络的能力。
[0008] SNNS用户手册说明了在人工神经网络(如,连接模型)中,"信息通常分布在整个 网络并被储存在拓扑结构和链接的权重中。网络由(自动化的)训练方法来组织,其大大 地简化了专用应用的开发。在普通[人工智能]AI系统中的经典逻辑被模糊结论和联想回 忆(完全匹配对最优匹配)所取代。在不能给出清楚的逻辑规则集合的所有情况中,这是 很大的优点。连接模型的固有的容错是另一个优点。另外,可使神经网络变得能够容忍输 入中的噪声:当噪声增加时,输出的品质常常仅缓慢地降低(微小的性能损失)。尽管存在 用于神经网络的模拟器,但是它们在学术界/大学之外的实际应用是被限制的,尤其是在 服务器能力规划领域。
[0009] 公开概述
[0010] 为了提供对一些方面的基本理解,以下给出了本公开的简化的概述。其并不旨在 确定本公开的关键或重要的要素或描绘本公开的范围。以下的概述仅仅将本公开的一些概 念以简化的形式给出,作为下面提供的更详细的描述的序言。
[0011] 本公开描述了用于管理在变化的负载下的一个或多个服务器的能力的方法和系 统。说明性的系统可包括储存了负载和健康测量结果的数据储存器、一个或多个处理器、以 及储存了各种模块的存储器,当各种模块被处理器执行时,导致对多个服务器机器的能力 的管理。神经网络可用于接受对应的负载和健康测量结果作为输入,并使用学习模块计算 这些输入之间的关系(如,相关性、因果关系等)。另外,预测器模块可使用神经网络生成多 个服务器机器的预测的健康状况。另外,模拟器模块可根据本公开的各个方面被用于进一 步增强神经网络的更新和服务器能力的管理。
[0012] 在根据本公开的方面的另一个实施方案中,包括计算机处理器和储存了计算机可 执行指令的有形的、非暂时性的计算机存储器的装置被公开,当计算机可执行指令被处理 器执行时,促使计算机系统实施本文描述的一个或多个步骤。在可选的实施方案中,计算机 存储器可被整体或部分地放置在数据储存器系统中。本公开的这些和其它实施方案的细节 将在附图和下面的描述中阐述。本公开的其它特征和优点根据描述和附图以及根据权利要 求将变得明显。当然,上面参考的实施方案的方法和系统还可包括其它附加元件、步骤、计 算机可执行指令或计算机可读数据结构。
[0013] 附图简述
[0014] 下面的附图描绘了本文描述的方法和系统的特定的说明性实施方案,其中,相似 的参考数字表示相似的元件。所公开的方法和系统的这些被描绘的实施方案将被理解为说 明性的而不是以任何方式进行限制。
[0015] 图IA描绘了提供远程访问能够执行应用程序的计算设备的网路环境的实施方 案。
[0016] 图IB和图IC是描绘计算设备的实施方案的框图。
[0017] 图2是在已知的和可商购的被称为斯图加特神经网络模拟器的神经网络产品中 的各种组件的简图。
[0018] 图3A是在根据本公开的各个方面的学习引擎中的组件的框图。
[0019] 图3B是在根据本公开的各个方面的预测引擎中的组件的框图。
[0020] 图4是使用根据本公开的各个方面的说明性的人工神经网络学习和预测一个或 多个服务器机器的性能的说明性方法的流程图。
[0021] 图5是根据本公开的各个方面的说明性的人工神经网络。
[0022] 图6是示出了用于根据本公开的各个方面测试一个或多个服务器机器的健康状 况的一种方法的流程图。
[0023] 图7A-7G是用于模拟、监测、以及预测根据本公开的各个方面的一个或多个服务 器计算机的负载和健康状况的图形用户界面(GUI)工具的说明性屏幕截图。
[0024] 详细描述
[0025] 公开了用于使用机器学习(如,神经网络和/或组合学习)来解决服务器群(如, 云资源)的供应预测中的非线性问题的系统和方法。机器学习可使用诸如来自德国斯图加 特大学的SNNS产品的可商购产品执行。包括用于机器学习的神经网络的系统提供了用于 进行跟踪的输入和输出标识,并且系统提供了它们之间的相互关系。代替静态规则,机器学 习用对应的置信度分数提供动态供应建议。基于由神经网络采集/测量的数据,供应建议 将改变,置信度分数也会改变。
[0026] 此处公开的一些方法在实际使用中利用统计波动的观测作为预测方法。这些波动 因各种原因发生,例如(1)诸如每日、每周和每季度的使用的常规变化,(2)由于客户需求 改变的趋向变化,(3)由于中断运行和异常事件的个别变化,(4)服务器机器升级,(5)被添 加的/被删除的/新版本应用;(6)由于改变组织的应用使用变化;及其它。所公开的一些 方法是用于将计算机系统的性能确定为处理负载的函数,其中负载可源于被各种用户运行 的各种可执行文件。最令人满意的性能可定义系统的能力。性能也可根据假设的负载进行 预测。另外,在波动期间的服务器的历史测量结果和处理性能可被开发以获知在峰值负载 条件或降低的负载条件下的性能表现变得平均时将发生的情况。例如,如果特殊事件使用 户数目剧烈跳变,则在那段时间期间的处理和服务器性能的测量结果可被开发以精确预测 对于将来新用户的涌入或由于提供给现有用户的服务的扩充而增加使用的性能将如何。在 另一个实施例中,在能力减小的常规服务器维护周期期间的测量结果可被开发,以确定如 果由于能源节约的原因服务器被停用或被中断电源时的处理性能。
[0027] 作为概述,系统将服务器负载与服务器健康状况相关联以在学习步骤期间使用学 习模块识别因果关系。在一个实施方案中,机器学习模块(如,学习模块)可使用人工神经 网络实施。在另一个实施方案中,机器学习模块可使用K最近邻(kNN)分类器实施。在又 一个实施方案中,机器学习模块可使用人工神经网络和K最近邻(kNN)分类器两者实施。
[0028] 说明性计算环境概述。图IA示出计算环境101的一个实施方案,该计算环境包 括与一个或多个服务器1〇6Α-106Ν(本文通称为"服务器106")通信的一个或多个客户机 102A-102N(本文通称为"客户机102")。安装在客户机102与服务器106之间的是网络。 在一些实施方案中,计算环境101可包括安装在服务器106和客户机102之间的负载均衡 器设备(如,设备108)。该负载均衡器设备108客户端/服务器连接,且在一些情况下可 在多个后端服务器之间对客户端连接进行负载均衡。在其它实施方案中,负载均衡器设备 108的功能可被合并进服务器106A和通过该设备提供。
[0029] 客户机102可在一些实施方案中被称为单个客户机102或单组客户机102,而服 务器106可被称为单个服务器106或单组服务器106。在一个实施方案中,单个客户机102 与一个以上的服务器106通信,而在另一个实施方案中,单个服务器106与一个以上的客户 机102通信。在又一实施方案中,单个客户机102与单个服务器106通信。
[0030] 在一些实施方案中,客户机102可被引用为下列术语中的任一个:客户机102 ;客 户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端 点;端点节点或第二机器。在一些实施方案中,服务器106可以被引用为下列术语中的任一 个:服务器;本地机器;远程机器;服务器群(server farm);主机计算设备或第一机器。
[0031] 在一个实施方案中,客户机102可包括虚拟机102C。虚拟机102C可以是任何虚拟 机,而在一些实施方案中,虚拟机102C可以是由XenSolutions、Citrix系统(如,Xen超级 管理器)、181、¥1^代、微软(如,办?虹,)41(:(如45乂)开发的超级管理器或任何其它超 级管理器管理的任何虚拟机。在其它实施方案中,虚拟机102C可以由任何超级管理器来管 理,而在又一些其它实施方案中,虚拟机102C可以由在服务器106上执行的超级管理器或 在客户端102上执行的超级管理器来管理。在根据本公开的各种实施方案中,超级管理器 可以是支持运行操作系统的多个实例的抽象层,每一个操作系统可以是虚拟机。那些虚拟 机中的一个可管理超级管理器在其上执行的物理设备。在一些实施例中,这些虚拟机中的 每一个可以是可选地被称为"域",而管理域可被称为"域〇 (Dom 0) "或"域0 (Domain 0) "。
[0032] 在一些实施方案中,客户机102可以执行、运行或以其它方式提供可以是下列应 用中的任意一个的应用:软件;程序;可执行指令;虚拟机;超级管理器;网页浏览器;基于 网页的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件Java小应用程 序;类似于软IP电话的通过互联网协议(VoIP)的