实现云以有效地向服务器指配工作负荷的制作方法

文档序号:6532617阅读:180来源:国知局
实现云以有效地向服务器指配工作负荷的制作方法
【专利摘要】按照一些实施例,公共作为服务的基础设施(IaaS)用户能够向云服务提供商提供文件,其中具有与可在运行于云服务提供商系统的应用中使用的特定指令和操作码有关的信息。这个信息可在编译时由用户在将工作负荷部署到公共IaaS云之前来形成。因此,用户对提供的信息具有完全控制。
【专利说明】实现云以有效地向服务器指配工作负荷
【技术领域】
[0001]这一般涉及云计算。
【背景技术】
[0002]在云计算中,计算和存储容量基于规模经济和资源共享来提供给多种用户。这使用户能够在无需引起建立数据中心的成本的情况下具有实际无限的容量。
[0003]作为服务的基础设施或IaaS向多种用户提供采取物理形式或者作为虚拟机的计算机、原始存储、防火墙、负荷平衡器和网络。在公共IaaS中,资源是任何用户可用的。一般来说,IaaS云提供商具有按需服务于用户的大服务器池。云用户安装其自己的操作系统镜像和应用软件,并且负责其维护。云用户对实际使用的服务按每次使用进行付费。
[0004]在公共IaaS系统中,提供云供所有来者使用的服务提供商负有如下问题:它不知道与从这些用户接收的工作负荷的性质有关的任何情况。一般来说,其原因在于,隐私和安全问题限制了提供给云服务提供商的信息。云服务提供商不能在云服务提供商提供商的服务器上查看客户的实例以了解应用特性。服务提供商也不能足够广泛地监测客户应用的物理资源消耗以确定会影响客户应用性能的客户应用的特性。
【专利附图】

【附图说明】
[0005]针对下列附图来描述一些实施例:
图1是本发明的一个实施例的示意图;
图2是按照本发明的一个实施例的序列的流程图;以及 图3是本发明的又一个实施例的流程图。
【具体实施方式】
[0006]按照一些实施例,公共作为服务的基础设施(IaaS)用户能够向云服务提供商提供文件,其中具有与将要运行于云服务提供商系统的应用中使用的特定指令和操作码有关的信息。这个信息可在编译时由用户在将工作负荷部署到公共IaaS云之前来形成。因此,在一些实施例中,用户对提供的信息具有完全控制。
[0007]例如,特定指令和/或操作码可已知为获益于在云上的特殊处置。特定类型的指令可获益于在具有特定能力的服务器上的执行。如果云服务提供商知道这些指令存在于应用中,则云服务提供商可将工作负荷分配给用于那个特定工作负荷的最有效服务器。
[0008]具体来说,云服务提供商可通过按照使单独服务器利用为最大的方式来封装尽可能多的实例,来增加固结比并且增强其基础设施的效率。另外,云服务提供商可避免冲突工作负荷被放置在同一服务器上。例如,不是将两个存储器带宽密集工作负荷共同放在同一服务器上,而是可在不同服务器上调度工作负荷,以更好地管理资源。
[0009]在一些实施例中,在应用或虚拟机实例的编译时或部署时,关键应用特性在可被称作目录的文件中捕获。这个目录能够在部署实例时由云用户提供给IaaS云服务提供商。然后,云服务提供商具有与应用特性有关的知识,其能够用于有效地调度工作负荷并且更好地将其映射到可用服务器资源,而无需监测或细察客户的应用。
[0010]目录不一定需要包含运行时简档(profile)。例如,在将要运行于云的应用中使用加密、例如超文本传输协议安全(HTTPS)或安全套接字层(SSL)时,编译器在应用目录中记录应用会获益于高级加密标准(AES)新指令(NI)。然后,云服务提供商又利用这个知识来调度AES-NI使能服务器(而不是没有加密加速的较早系统)上的工作负荷。
[0011]作为另一个示例,在将要运行于云的应用中使用高成本浮点时,目录信息可由云服务提供商用来将工作负荷部署到具有多集成核心(Mic)辅助的服务器上。
[0012]以及作为又一个示例,如果云服务提供商变成知道应用与高级向量扩展(AVX)指令集扩展相结合,则由于分析目录,那个服务提供商能够将工作负荷与可用服务器匹配,并且增加基础设施和效率。
[0013]在一些实施例中,目录可包含语言特定提示,例如虚拟机实例中的工作负荷是基于Java的,并且由此云服务提供商能够调度Java虚拟机(JVM)优化的服务器池上的工作负荷。
[0014]参照图1,示出系统或数据中心10的概述。在顶部,在云用户自己的站点的应用的编译以I示出。将应用(app) 12提供给编译器14,其生成编译对象16以及目录18。如图1所示,目录18可识别操作码或指令、例如AES或AVX指令存在于会获益于被指配运行于具有特殊能力的服务器的应用中。
[0015]然后,客户将工作负荷部署(#2)到虚拟机(VM) 20上的公共IaaS云中。这意味着,云接收编译对象16以及目录18。具有存储装置25的云操作环境22包括目录读取器23,其读取虚拟机中的目录信息,如到读卡器23的箭头所示。然后,云对在可行程度上最适合处置工作负荷的IaaS硬件部署应用。这种部署可受到服务器可用性限制。在一些情况下,工作负荷可延迟到适当服务器是可用的。例如,如果提供AES指令,则可将工作负荷提供(#3)给具有AES-NI和/或AVX能力的服务器(如以28所示),而不是提供给结构24中没有包括这些能力的服务器26。
[0016]在一些实施例中,编译器在编译时形成目录。然后,当云客户在从云服务提供商所带来的实例中封装应用时,目录随那个实例被包含。目录读取器和操作环境22可嵌入云操作环境中。当客户部署实例时,实例分批进入云操作环境,供在可用IaaS基础设施24上调度。利用嵌入式目录读取器的云操作环境了解应用的特性,并且因此基于最佳基础设施匹配来部署工作负荷。
[0017]具有某些能力、例如AVX或AES-NI能力的应用使用完全特定的指令和操作码。因此,作为编译器的一部分的解析工具定位那些指令,并且能够将那个工作负荷标记为正被编译。例如,诸如 AESENC、AESENCLAST、AESDEC、AESDECLAST、AESKEYGENASSIST、AESMC、PCLMULQDQ之类的指令或者其操作码的存在暗示该应用可经过编译以利用AES-NI指令。本发明并不局限于这些操作码和指令。能够通过其操作码或功能性来识别的任何指令集指令能够由编译器用来实现类似目的。
[0018]图2中,编译器序列14可通过软件、固件和/或硬件来实现。在软件和固件实施例中,计算机可执行指令可存储在一个或多个非暂时计算机可读介质(例如磁、半导体和/或光存储装置)中。[0019]因此,参照图2,在客户站点的编译器14如12所示接收应用,并且如30所示编译该代码。编译器14中的解析工具可用来定位特定指令或操作码,如框32所示。基本上,文件可提供有要搜索的指令或操作码,以及解析工具自动定位被编译代码中的那些指令或操作码。
[0020]如果解析工具查找这些指令的任一个,则在菱形框34,它标记工作负荷,并且加载所找到的特定指令和操作码,如框36所示。然后,如框38所示,可准备简档目录,以便随编译对象发送给云服务提供商。在一些实施例中,读卡器可随目录来发送。
[0021]在一些实施例中,目录可在云服务提供商所提供的特定表单或模板中。另外,可建立特定代码,以指示应用中的特定指令或操作码的存在。另外,目录可包括对具有特定特性的服务器上进行处置的请求。目录还可指示应用对时间敏感的程度,使得云能够评估是否延迟执行以挂起有益服务器的可用性。类似地,目录可识别不应当指配给同一服务器的潜在冲突的工作负荷。
[0022]图3中,工作负荷指配的序列40可通过软件、固件和/或硬件来实现。在软件和固件实施例中,计算机可执行指令可存储在一个或多个非暂时计算机可读介质中(例如磁、半导体和/或光存储装置)。
[0023]在一个实施例中,图3所示的序列40可在云操作环境中实现。在云服务提供商,作为云操作环境22的一部分的工作负荷指配器接收工作负荷,如框42所示。操作环境中的目录读取器读取目录信息,如框44所示。然后,将应用部署到适合工作负荷的适当服务器或者服务器池,如框46所示。
[0024]在一些实施例中,云操作环境22是基于服务器或处理器的系统,其运行计算机可读介质上存储的指令。具体来说,那些指令可存储在一个或多个非暂时计算机可读介质(例如光、磁或半导体存储装置)中。例如,图1中,这种存储装置以25示出。那个存储装置可存储实现图3所示序列所需的指令。
[0025]同样,编译器14可包括存储装置15,其存储实现图2所示序列的指令。在一些实施例中,超过一个存储装置可用来存储实现图2和图3的序列的指令集。
[0026]在一些实施例中,目录可包含在一个或多个分组中,其中包括将分组或者多个分组识别为目录的报头。然后,分组或者多个分组可易于由解析工具在编译时来定位。也可使用用于促进其它数据之间的目录的定位的其它技术。
[0027]当应用还未加载到它应该在其上运行的系统、例如云时,本文所述的序列开始。客户或云提供商将工作负荷放置在云提供商的队列上。然后,云提供商能够拾取它,并且在云提供商数据中心内部的许多服务器之一上运行它。
[0028]在将工作负荷放置于云提供商数据中心中的系统之前,云提供商能够通过知道工作负荷对特殊指令是否经过优化来获益。在一些实施例中,云提供商则能够更有效地操作其数据中心资源,并且客户可获得更好的完成时间。
[0029]例如,客户可将AVX优化媒体工作负荷放置在云上。由于隐私原因,云服务提供商可以不检查工作负荷以查看它是否经过AVX优化。客户没有通知云服务提供商关于工作负荷是否经过AVX优化的方式。
[0030]在本发明的一些实施例中,云提供商和客户能够按照可缩放和自动化方式来传递工作负荷简档。在这个示例中,如果云服务提供商使其服务器池中的AVX使能服务器来运行该工作负荷,则在一些实施例中,它可能将工作负荷部署在这类服务器上,获得更好的完成时间,并且随时间推移处置更多工作负荷。一旦工作负荷放置在AVX使能服务器上,动态链接库(DLL)能够检查中央处理器标识符(CPWD),并且运行优化代码路径。即,基于其中央处理器标识符认识到服务器具有AVX能力,应用能够运行优化代码。
[0031]下列条款和/或示例涉及其它实施例:
一个示例实施例可以是一种方法,其中包括:得到与应用所使用的指令或操作码有关的信息;以及基于那个信息来将应用指配给云中的多个服务器的服务器。该方法还可包括从伴随应用的编译代码的目录中得到信息。该方法还可包括所述信息指示应用使用加密,从而指配应用 运行于适合运行加密指令的服务器。该方法还可包括确定应用是否使用高级向量指令。该方法还可包括将应用指配给适合运行高级向量指令的服务器。该方法还可包括在云接收编译对象连同所述信息供执行。该方法还可包括在将包括对象的工作负荷指配给服务器之前,在云操作环境中读取所述信息。该方法还可包括基于所述信息来选择处置所述工作负荷的服务器。该方法还可包括将服务器指配到公共作为服务的基础设施云中。
[0032]另一个示例实施例可以是一种存储指令的非暂时计算机可读介质,其中指令使处理器能够:得到与应用所使用的指令或操作码有关的信息;以及基于那个信息来将应用指配给云中的多个服务器的服务器。该介质还存储从伴随所述应用的编译代码的目录中得到信息的指令。该介质还可存储在所述信息指示应用使用加密时、指配应用运行于适合运行加密指令的服务器的指令。该介质还可存储确定应用是否使用高级向量指令的指令。该介质还可存储基于确定应用使用高级向量指令来将应用指配给适合运行高级向量指令的服务器的指令。该介质还可存储在云接收编译对象连同所述信息供执行的指令。该介质还可存储在将包括对象的工作负荷指配给服务器之前、在云操作环境中读取所述信息的指令。该介质还可存储基于所述信息来选择处置工作负荷的服务器的指令。该介质还可存储将服务器指配公共作为服务的基础设施云中的指令。
[0033]一个示例实施例可以是一种存储指令的非暂时计算机可读介质,其中指令使处理器能够:接收应用;编译应用的代码;定位所述代码中的特定指令或操作码,如果找到特定指令,则标记应用;以及准备识别将要在云服务提供商站点读取的所述指令或操作码有关信息的简档目录。该介质可包括存储对于加密指令解析应用的指令。该介质可包括存储解析应用以确定应用是否使用高级向量指令的指令。该介质可包括存储在编译时识别所述指令或操作码的指令。该介质还可包括存储向云发送编译对象连同所述信息供执行的指令。
[0034]另一个示例实施例可以是一种设备,包括:处理器,解析应用中的指令或操作码,如果找到特定指令或操作码,则标记应用,并且准备简档目录以识别将要在云服务提供商站点读取的应用的所述指令或操作码有关的信息;以及存储装置,耦合到所述处理器。该设备可包括对于加密指令解析应用的所述处理器。该设备可包括解析应用以确定应用是否使用高级向量指令的所述处理器。该设备可包括在编译时识别所述指令或操作码的所述处理器。该设备还可包括向云发送编译对象连同所述信息供执行的所述处理器。
[0035]本说明书中提到“一个实施例”或“实施例”表示结合该实施例所述的具体特征、结构或特性包含在本发明所包含的至少一个实现中。因此,词语“一个实施例”或者“在一个实施例中”的出现不一定都表示同一个实施例。此外,具体特征、结构或特性可通过与所示具体实施例不同的其它适当形式来创立,并且所有这类形式均可包含在本申请的权利要求书中。
[0036]虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从中知道大量修改和变更。预计所附权利要求书涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。
【权利要求】
1.一种方法,包括: 得到由应用所使用的指令或操作码有关的信息;以及 基于那个信息来将所述应用指配给云中的多个服务器的服务器。
2.如权利要求1所述的方法,其中,得到信息包括从伴随所述应用的编译代码的目录中得到信息。
3.如权利要求1所述的方法,包括如果所述信息指示所述应用使用加密,则指配所述应用运行于适合运行加密指令的服务器上。
4.如权利要求1所述的方法,包括确定所述应用是否使用高级向量指令。
5.如权利要求4所述的方法,包括将所述应用指配给适合运行高级向量指令的服务器。
6.如权利要求1所述的方法,包括在云接收编译对象连同所述信息供执行。
7.如权利要求6所述的方法,包括在将包括所述对象的工作负荷指配给服务器之前,在云操作环境中读取所述信息。
8.如权利要求7所述的方法,包括基于所述信息来选择处置所述工作负荷的服务器。
9.如权利要求1所述的方法,包括将服务器指配在公共作为服务的基础设施云中。
10.存储指令的一个或多个非暂时计算机可读介质,所述指令使处理器: 得到由应用所使用的指令或操作码有关的信息;以及 基于那个信息来将所述应用指配给云中的多个服务器的服务器。
11.如权利要求10所述的介质,还存储从伴随所述应用的编译代码的目录中得到信息的指令。
12.如权利要求10所述的介质,还存储在所述信息指示所述应用使用加密时、指配所述应用运行于适合运行加密指令的服务器上的指令。
13.如权利要求10所述的介质,还存储确定所述应用是否使用高级向量指令的指令。
14.如权利要求13所述的介质,还存储基于确定所述应用使用高级向量指令来将所述应用指配给适合运行高级向量指令的服务器的指令。
15.如权利要求11所述的介质,还存储在云接收编译对象连同所述信息供执行的指令。
16.如权利要求15所述的介质,还存储在将包括所述对象的工作负荷指配给服务器之前、在云操作环境中读取所述信息的指令。
17.如权利要求16所述的介质,还存储基于所述信息来选择处置工作负荷的服务器的指令。
18.如权利要求10所述的介质,还存储将服务器指配在公共作为服务的基础设施云中的指令。
19.存储指令的一个或多个非暂时计算机可读介质,所述指令使处理器: 接收应用; 编译所述应用的代码; 定位所述代码中的特定指令或操作码,并且如果找到特定指令,则标记所述应用;以及准备识别在云服务提供商站点读取的所述应用的所述指令或操作码有关的信息的简档目录。
20.如权利要求19所述的介质,还存储对于加密指令解析所述应用的指令。
21.如权利要求19所述的介质,还存储解析所述应用以确定所述应用是否使用高级向量指令的指令。
22.如权利要求19所述的介质,还存储在编译时识别所述指令或操作码的指令。
23.如权利要求19所述的介质,还存储向云发送编译对象连同所述信息供执行的指令。
24.一种设备,包括: 处理器,解析应用中的指令或操作码,并且如果找到特定指令或操作码,则标记所述应用,并且准备简档目录以识别将要在云服务提供商站点读取的、用于所述应用的所述指令或操作码有关的信息;以及 耦合到所述控制器的存储装置。
25.如权利要求24所述的设备,其中,所述处理器对于加密指令解析所述应用。
26.如权利 要求24所述的设备,所述处理器解析所述应用以确定所述应用是否使用高级向量指令。
27.如权利要求24所述的设备,所述处理器在编译时识别所述指令或操作码。
28.如权利要求24所述的设备,所述处理器向云发送编译对象连同所述信息供执行。
【文档编号】G06F15/16GK104025072SQ201380004559
【公开日】2014年9月3日 申请日期:2013年8月9日 优先权日:2012年8月31日
【发明者】R.海尔曼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1