用于减少基于云的服务的重新激活时间的方法和系统与流程

文档序号:11590468阅读:152来源:国知局

本发明一般地涉及基于云的服务,并且具体地涉及增强在长时间不活动之后的云服务的初始重新激活响应时间。



背景技术:

近年来,已经开发并且部署允许消费者利用计算资源不需资本支出来获取这样的计算资源的云计算服务。通常,云计算服务提供者配置一个或多个计算机和/或计算机系统,该计算机和/或计算机系统具有至少一个处理器、存储器储存和到该一个或多个计算机和/或计算机系统的网络访问。这些云计算机系统可以包括任何数量的处理器、存储器和/或网络访问装置(例如,(一个或多个)网络接口卡(nic))以允许任何数量的消费者访问由计算机系统提供的服务。服务可以包括但不限于数字处理、商务交易处理和/或网页托管(webhosting)。



技术实现要素:

根据本发明原理的一个方面,提供了用于减少基于云的服务的重新激活时间的方法。在一些实施例中,方法可以包括:在服务已经不活动之后检查在所述服务的处理期间发生的页面错误,其中所述检查包括分析引起所述页面错误的地址;以及在至少一个预取组中记录引起所述页面错误的所述地址。根据所述至少一个预取组中的页面错误数据来制定预取决策树。所述预取决策树包括多个边缘,所述多个边缘提供页面在所述服务请求期间将被触碰的概率。该方法可以继续,根据所述预取决策树,在重新激活的服务请求之后比较来自所述服务的初始页面表的页面以确定所述页面是否在驻留存储器中作为预取的页面。在所述页面表中的未被包含在所述预取的页面中的页面被页入。该方法可以继续,在入参数/出参数向量中插入之前页出的页面以用于批量恢复。可以用硬件处理器执行处理以使用所述页面表提供所述服务,其中所述执行实质上避免了页面错误。

根据本发明的另一方面,提供了用于减少服务的重新激活时间的系统。在一些实施例中,该系统可以包括:页面错误分析器,在服务已经不活动之后检查在所述服务的处理期间的页面错误的地址;以及跟踪模块,在至少一个预取组中记录引起所述页面错误的地址。该系统还可以包括决策树模块,根据至少一个预取组中的页面错误数据创建预取决策树。预取决策树可以包括多个边缘,所述多个边缘提供页面在所述服务请求期间将被触碰的概率。在重新激活的服务请求之后,页面比较模块根据所述预取决策树确定来自服务的页面表的页面是否在驻留存储器中作为预取的页面,其中页面表中的未被包含在预取的页面中的页面被页入。页入插入模块通过批量恢复将页出的页面插入到存储器中。页面表更新模块用于将所述页入的页面插入到所述初始页面表中以提供更新的页面表。该系统还可以包括处理执行模块,以使用更新的页面表提供服务,其中执行该处理实质上避免了页面错误。

根据本公开的另一方面,提供了有形地体现计算机可读程序的非瞬时性制品。在一个实施例中,提供了非瞬时性计算机可读储存介质,其包括用于减少基于云的服务的重新激活时间的计算机可读程序。当在计算机上执行时,该计算机可读程序使得计算机执行以下步骤:在服务已经不活动之后检查在所述服务的处理期间发生的页面错误,其中该检查可以包括分析引起页面错误的地址。引起页面错误的地址可以记录在至少一个预取组中。计算机可读程序执行的步骤还可以包括根据在至少一个预取组中的页面错误数据制定预取决策树。预取决策树可以包括多个边缘,所述多个边缘提供页面在所述服务请求期间将被触碰的概率。计算机可读程序还指令根据所述预取决策树比较在重新激活的服务请求之后来自所述服务的初始页面表的页面是否在驻留存储器中作为预取的页面,其中在所述页面表中的未被包含在所述预取的页面中的页面被页入。执行的步骤还可以包括在入参数/出参数向量中插入之前页出的页面以用于批量恢复。然后使用所述页面表执行提供所述服务的处理,其中所述执行实质上避免了页面错误。

这些和其它特征和优点从下列对示意性实施例的详细描述将变得显而易见,将结合附图阅读该描述。

附图说明

本公开将参考以下附图在对优选实施例的以下描述中提供细节,附图中:

图1是根据本公开的一些方面的经历由来自存储器页面的服务的不活动导致的页面错误的存储器容器的等待时间的绘图。

图2示出了根据本发明原理的实施例的示例性云计算节点。

图3示出了根据本发明原理的实施例的示例性云计算环境。

图4示出了根据本发明原理的实施例的示例性抽象模型层。

图5是示出根据本公开的一个实施例的用于减少基于云的服务的重新激活时间的方法的一个实施例的流程图/框图。

图6是示出根据本公开的预取决策树的一个实施例的示意图。

图7是示出根据本发明原理的实施例的用于减少基于云的服务的重新激活时间的示例性系统的一个实施例的框图。

具体实施方式

本发明涉及信息技术(it)服务以及通过基于云的消耗模型日益增加地提供的微服务。许多这些服务仅在请求指向它们时活动。这样的服务的示例是很少见到流量的个人网站。该突发性活动的性质适用于在相同的计算主机上布置许多这样的服务,从而提供有效的资源使用。虚拟机、例如vmware、kvm和xen提供布置量级为数十个的服务的能力。虚拟机(vm)是特定计算机系统的仿真。虚拟机基于计算机架构和真实或假设的计算机的功能而操作,并且它们的实现方式可能涉及专用硬件、软件或两者的组合。近来,操作系统容器(container)提供定位量级为数百个的服务到近似一千个服务的能力。在一些示例中,虽然所述服务的密度取决于平均的中央处理器(cpu)使用,这可能是不一致的,但是每一个服务需要一些存储器使用,无论服务是否是活动的。通常,这些服务的集体存储器需求远超过可用的存储器。

传统上,操作系统利用虚存存储器技术以将一些服务的一些存储器暂时储存在磁盘上直到其被活动地访问,称为分页(paging)或对换(swapping)的技术。已经确定的是,随着存储器被越来越多地过度使用——这自然是由高度的服务布置产生,响应时间可能显著受影响。具体而言,当服务在长时间不活动之后第一次被重新激活时,其存储页面的许多已被对换出。因此,当与长延迟的服务相关联的处理执行时,它们将经历在页出(pagedout)的页面被大量访问时增量地触发的极大量的初始页面错误,增加了服务的响应时间,这可能导致服务质量(qos)破坏。如本文中所用,“页面错误”是当运行的程序访问被映射到虚拟地址空间中而不是实际被加载到主存储器中的存储器页面时由计算机硬件产生的一种类型的中断,称为异常(exception)。在一些示例中,解决页面错误可能需要~100μ秒(对于基于昂贵的固态器件(ssd)的对换装置)到~10毫秒(对于基于硬盘装置(hdd)的对换装置)之间。在这些情况下,可能经历10s到100s的页面错误直至服务请求导致到服务器的响应,可能延迟服务请求达数秒。

图1是示出该影响的作为容器的数量的函数的存储器容器中的等待时间的绘图。y轴表示等待时间测量,并且x轴是容器的数量。曲线1是从包括power8处理器和固态驱动(ssd)存储器的系统测量的等待时间的绘图。曲线2是从包括power8处理器和硬盘驱动器(hdd)存储器的系统测量的等待时间的绘图。曲线3是从包括power8处理器和以raid0布置的两个固态驱动(ssd)存储器的系统测量的等待时间的绘图。如图1中所示,在一些实例中,随着越来越多的容器被定位在系统上,响应时间随着系统用尽存储器资源而指数地增加。注意,在这种情况下,cpu使用性非常低,因此等待时间衰减可极大地归因于来自对换设备的存储器的重新加载。该影响可以通过从hdd移动到ssd到raidedssd(要访问的两个磁盘因此增大了磁盘并行性)而弱化,但是其是仍是指数的。

在一些实施例中,在此提供的方法、系统和计算机程序产品提供了改进在长时间的不活动之后的服务的初始重新激活响应时间。在一些实施例中,为了避免与在执行服务时增量地经历的大量页面错误相关联的成本,本文公开的方法、系统和计算机程序产品创建了用于预测在处理服务请求期间将被触碰的页面的可能集合、并且确保这些页面通过单个或者少量的向量i/o操作而全部被预取并停留、从而显著减少一系列按需递增的页面错误的开销的方法。

在一些示例中,当处理器在指令或数据被实际需要之前从主存储器请求该指令或数据时发生预取。一旦该指令、例如数据从存储器回来,其被放置在缓存中。当实际需要指令时,可以比如果已经需要从存储器请求时更加快速地从缓存访问该指令,例如数据。如文中所用的"向量i/o",也被称作分散/聚集i/o,是输入和输出的方法,通过该方法,单个过程调用依次将数据从多个缓冲器写入到单个数据流或将数据从数据流读取到多个缓冲器。缓冲器在缓冲器的向量中给出。分散/聚集是指从给出的缓冲器集聚集数据或将数据分散到给出的缓冲器集中的过程。向量i/o可以同步或异步操作。

在一些实施例中,操作系统增强了在某些长时间停用之后跟踪触发页面错误的地址集、将该序与处理一起存储、并且在随后的重新激活中批量恢复这些页面的能力。在一些实施例中,该方法进一步提供用于跟踪地址序列的变化以及该序列的有效性的手段,以避免不必要的页面恢复。在一些实施例中,该方法进一步提供不断地学习响应行为的能力。现在参考图2-7更详细地描述本公开的方法、系统和计算机程序产品。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种消费者机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图2,其中显示了云计算节点1310的一个例子。图2显示的云计算节点1310仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点1310能够被用来实现和/或执行以上所述的任何功能。

云计算节点1310具有计算机系统/服务器1312,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器1312一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器1312可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器1312可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

如图2所示,云计算节点1310中的计算机系统/服务器1312以通用计算设备的形式表现。计算机系统/服务器1312的组件可以包括但不限于:一个或者多个处理器或者处理单元1316,系统存储器1328,连接不同系统组件(包括系统存储器1328和处理单元1316)的总线1318。

总线1318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器1312典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器1312访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器1328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)1330和/或高速缓存存储器1332。计算机系统/服务器1312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统1334可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线1318相连。存储器1328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块1342的程序/实用工具1340,可以存储在存储器1328中,这样的程序模块1342包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块1342通常执行本发明所描述的实施例中的功能和/或方法。例如,程序模块1342可以包括参考图2所描述的模块。

计算机系统/服务器1312也可以与一个或多个外部设备1314(例如键盘、指向设备、显示器1324等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器1312交互的设备通信,和/或与使得该计算机系统/服务器1312能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1322进行。并且,计算机系统/服务器1312还可以通过网络适配器1320与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1320通过总线1318与计算机系统/服务器1312的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器1312一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

现在参考图3,其中显示了示例性的云计算环境1450。如图所示,云计算环境1450包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点1410,本地计算设备例如可以是个人数字助理(pda)或移动电话1454a,台式电脑1454b、笔记本电脑1454c和/或汽车计算机系统1454n。云计算节点1410之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点1410进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境1450提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图3显示的各类计算设备1454a-n仅仅是示意性的,云计算节点1410以及云计算环境1450可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图4,其中显示了云计算环境1450(图3)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图4所示,提供下列层和对应功能:

硬件和软件层1560包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于risc(精简指令集计算机)体系结构的服务器,例如ibm系统;ibm系统;ibm系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如ibm应用服务器软件;数据库软件,例如ibm数据库软件。(ibm,zseries,pseries,xseries,bladecenter,websphere以及db2是国际商业机器公司在全世界各地的注册商标)。

虚拟层1562提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟消费者端。

在一个示例中,管理层1564可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能:为根据sla预测的对云计算资源未来需求提供预先安排和供应。

工作负载层1566提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及基于云的服务处理的重新激活时间。

图5描绘了用于减少基于云的服务的重新激活时间的方法的一个实施例。在一些实施例中,本公开的方法可以提供与处理对象相关联的一个或多个预取组;使能地址跟踪的与处理相关联的标签;指定在该方法被激活之前处理应该不活动多长时间的与处理(或全局)相关联的延迟参数;描述非参与、学习或最优化模式的任一个的模式。地址跟踪可包括标记处理以响应于对最优化的请求而跟踪地址。

预取组可以是一组页面的指令或数据,其被确保在它们被实际需要之前存在于存储器中。预取组中的指令对应于服务。服务可以是可以经由云环境交付给用户的基础架构、应用和商业处理。处理是云环境采用的以向用户提供服务的功能,例如代码或指令或数据的使用。处理目标是向用户提供该服务的期望的结果。

可以与本文公开的方法、系统和计算机程序产品一起使用的服务的一些示例可包括但不限于:社交网络服务、电子邮件服务——例如基于网页的电子邮件服务、文档/电子表格托管服务、健康护理服务、政府功能服务、数据库服务、消息服务、数据分析服务及其组合。

如上所述,该方法包括可以采用三种模式——例如非参与、学习和最优化模式的系统(以下称为重新激活时间减少系统),以便减少服务的重新激活时间。在一些实施例中,默认系统中的处理处于非参与模式,并且因此本文中所述的最优化没有被应用于处理。在一些实施例中,该方法可以在步骤10开始,响应于用于交付服务的处理的重新激活而将重新激活时间减少系统从非参与模式切换到学习模式。在一些示例中,服务可以由于下列原因之一而被唤醒:健康检查查验(ping)、监控查验(与健康检查不同的端口)、安全性查验、边车查验(这些不是主应用处理而是接着主应用运行的代理)、应用入口点及其组合。应注意的是,以上示例仅是可以重新激活服务的事件的一些示例,因此将重新激活时间减少系统从非参与切换到学习状态,并且这些示例不意图限制本公开。例如,已经预期到任何命令、信号或功能可以由重新激活时间减少系统采用以向系统发送信号以从非参与模式切换到学习模式。所有上述的示例事件可能导致不同的预取模式,所以在一些实施例中,在提供优化的重新激活时间中它们被检测、学习和应用可以是有益的。

在一些实施例中,当重新激活时间减少系统被置于学习模式中时,例如,在系统已经不活动一段时间之后,在重新激活服务时,通过在图5中绘出的方法的步骤15的预取发现来检查导致页面错误的每一个地址。页面错误在运行的程序访问被映射到虚拟地址空间中而不是实际被加载到主存储器中的存储器页面时由计算机硬件引起。在一些实施例中,可以检测页面错误的硬件是处理器的存储器管理单元(mmu),而处理页面错误的异常处理软件通常是操作系统内核的一部分。在图5中示出的方法的步骤15的预取发现期间检测和检查的页面错误可包括次要页面错误、软页面错误、主要或硬页面错误以及无效的页面错误。诸如windows和unix(和其它类似unix的操作系统)的操作系统提供用于报告由页面错误引起的出错的不同机制。在一些实施例中,windows使用结构化的异常处理以将基于页面错误的无效的访问作为访问违规异常来报告,并且unix操作系统(以及类似unix的)系统通常使用诸如sigsegv的信号来报告这些出错条件。

在步骤20,导致页面错误的每一个地址可以记录在预取组的一个中。例如,页面错误和相关联的地址可以记录并保存在缓冲器中。在一些实施例中,当发现服务遵循不同的路径时需要储存大量的预取组。

在一些实施例中,通过服务的随后的重新激活,该处理将经历可能相似的页面错误,因为服务通常具有以消息或计时器的接收而开始的一个或多个服务入口点,然后触发特定代码和数据路径。在一些实施例中,在步骤20更新预取组之前,在步骤15处的分析可以标识之前所识别出的引起页面错误的地址是否已经被跳过,在该点处它们保留在预取组中。如果没有,创建预取组分支。如果在随后的页面错误处确定引入了新的地址序列,则在该点处插入该序列。当检测到看起来稍后要合并的多个并发序列时,它们可以被单独地维持。

在接下来的步骤中,在步骤25,该方法制定(formulate)预取决策树。在步骤15和20处的预取组的分析和记录的结果可用于制定表示应用/服务的不同访问行为的页面组的决策树。形成决策树的一个方法是记录地址、集群相似的地址序列并且识别在这样的群集中的发散。在一些实施例中,当检测到发散时,创建新的预取组,并且通过断开在前部分的一个预取组、分支和随后的延续预取组而创建分支。前部分和每一个延续组逻辑上是连接的,并且接下来的任一路径的概率与所述连接相关联。可以通过计数遍历的频率而建立概率。通过创建决策树,该方法有效地解决两个主要问题,即:1)存储器使用的时空表示,以及2)上下文可索引的页面组。存储器使用的时空表示、尤其是在加载用于每个服务的页面的初始阶段期间,可以提供“上下文”的简洁的表示和用于“索引”将被加载的合适的“页面组”的状态信息。上下文可索引的页面组提供了页面的遍历可通过马尔可夫(markov)模型或贝叶斯(baysian)网模型表示。

在一些实施例中,预取决策树可以以能够最小化页面错误率的方式提供在服务的激活事件或重新激活事件期间将要加载的下一组页面。预取决策可以是数据驱动的,因此预取决策树应该捕捉用于激活服务的接入点的上下文。如文中所用的术语“上下文”描述如下的情况以及将遵循哪个可能的页面(指令和数据)的路径来交付所请求的服务:在该情况下,服务被激活。除了通过容器处理而遍历的时空样式以外,输入数据还应该是状态信息的部分。

图6描述了预取决策树的一个实施例。边缘λij、λik、λim、λkm、λkn可以用概率、或者甚至用被检验的数据上下文来标记。在一个实施例中,标签表示例如由在学习阶段期间观察到的遍历的数量而建立的从一个所述前面的预取组到后续的预取组的遍历的概率。在另一实施例中,标签可以与检查数据(例如特定的变量或接收的消息的内容)相关联以确定遵循哪个边缘。例如,接收对于电子邮件的网页请求可能触发与用于接收对于视频流的网页请求不同的预取组。每个预取组、例如预取组-i、预取组-j、预取组-k、预取组-m和预取组-n包括在处理服务请求期间将被触碰的页面的可能的集合或者序列。通过用概率或者数据上下文标记边缘,一个或多个预取组可以与处理目标相关联。在一个实施例中,将预取最有可能的边缘。在一个实施例中,将发生页面错误,并且当它们可以匹配到任何页面组时,该页面组将被预取。

当服务在长时期的非激活之后已经被重新激活时,预取决策树确保预取组中的页面都可以被预取并且驻留在存储器上。通过在以存储器的形式驻留的预取的组中提供用于可以在一段时间的不活动之后被激活的服务的页面,重新激活时间减少系统可以减少一系列按需递增的页面错误的开销。重新激活时间减少系统根据决策树以预取的方式响应于服务请求,通过提供处理目标的一系列页面而减少开销,并且响应于服务请求而提供包括在可能产生页面错误的事件中的页面地址的预取的一系列页面。

可以预测重新激活(例如对于周期性的重新激活)并且可以创建以先后顺序排列预期到的容器/处理的预取队列。例如,如果服务每分钟被唤醒以进行健康检查,则可以学习该事实并且该事实与预取组相关联。此后,可以预测该行为并且可以及时启动预取以避免主要延迟。

参考图5,在系统确定在重新激活时的处理的行为可以被详尽地学习以及理解之后,其在步骤30将该处理置于最优化模式中。在一些实施例中,确定处理的行为已经被学习包括响应于服务请求而创建特定数量的预取组。

在一些实施例中,在图5中示出的方法的步骤35,当重新激活时间减少系统处于最优化模式中时,在长时期的不活动之后的下一个重新激活点,操作系统利用预取组,确定入口点,并且预测第一页面组。入口点是当请求到达时立即执行的代码。

参考图6,第一页面组被标识为预取组-i。可以通过分析入口点数据——例如入口点地址、以及在入口点由用户正请求的服务的类型而预测第一页面组。

在步骤40,重新激活时间减少系统然后可以根据由预取决策树指示的预取的页面(在方法的步骤25描述,其中在图6中提供了示例)针对这些页面的哪些驻留在存储器中以及哪些被页出而检查页面表。在虚拟存储器系统中,常见的是通过被称为页面表的数据结构的方式在虚拟地址和物理地址之间映射。地址的页面号(pagenumber)通常从地址的最高有效位找到;剩余的位产生页面内的存储器位置的偏移。页面表通常通过页面号来索引并且包含关于页面当前是否在主存储器中、以及其在主存储器中或盘上的哪里的信息。在物理存储器中可用的页面可以称为被页入,而在物理存储器中不可用的页面可以称被为页出。

在图5中描述的方法的步骤45,被页出的页面被插入到i/o向量(入参数/出参数向量)中并且被提交到i/o子系统以用于批量恢复。入参数是指向呼叫者、即用户用于从功能、即用于服务的处理接收数据的位置的功能参数。出参数是指向用于呼叫者从功能接收数据的位置的功能参数。入参数是将来自呼叫者的数据提供到功能、即用于服务的处理的功能参数。向量i/o是输入和输出的方法,通过该方法单个过程-呼叫顺序地将数据从多个缓冲器写入到单个数据流或者将数据从数据流读取到多个缓冲器。缓冲器在缓冲器的向量中给出。一旦i/o完成并且页面驻留,页面表被更新并且处理被安排用于执行,极大地避免了页面错误。

在步骤50,重新激活时间减少系统可以切换到非参与模式或者回到学习模式,即回到步骤15进行预取发现。在一些实施例中,学习和最优化阶段是连续的并且集成的。系统连续地学习并且改善预取决策树。如果确定边缘概率低于阈值,则该边缘和接着的组可能被丢弃(drop)(除非存在到预取组的不同的路径)。将重新激活时间减少系统从最优化模式切换到学习模式可能发生在服务请求的参数改变而需要另一预取发现分析时。例如,当达到决策树中的分叉并且随后的页面错误指示之前形成的预取组不覆盖当前的页面错误集合时,该方法可以切换回到学习模式并且继续更新决策树。在一个实施例中,学习阶段和最优化阶段可以同时活动,即系统最优化(预取)同时也学习未知的上下文和页面访问样式。

在图5中描述的方法的步骤55,当服务请求的参数没有改变为需要另一预取发现分析时,重新激活时间减少系统可以从最优化模式切换到非参与模式。例如,当服务已经长时间不活动时,之前学习的决策树可能不再是有效的。做出该询问时的时间段可以是在从服务已经被停用而没有重新激活时起的数小时或者数天内。一旦在非参与模式中,与处理(或全局)相关联的延迟参数可以指定在该方法在步骤10被激活之前处理应该被不活动多长时间。

预取组的替换表示是可能的。例如,代替储存全部地址,可以储存距前一个的距离。

图7示出了根据本发明的实施例的用于减少云环境中的服务的重新激活时间的示例性系统200、即重新激活时间减少系统。图7中描述的系统200可以集成到图2中描述的计算机服务系统1312中。例如,该系统可以提供具有一组(至少一个)程序模块1342的程序/实用工具1340,可以储存在图2示出的计算机服务系统1312的存储器1328中。此外,将认识到,系统200可以进行这里所述的方法的至少部分,包括例如图5的方法的至少部分。

参考图7,可以提供用于减少基于云的服务的重新激活时间的重新激活时间减少系统200,该重新激活时间减少系统200包括页面错误分析器201、跟踪模块202、决策树模块203、页面比较模块204、页面插入模块205、页面表更新模块206、处理执行模块207、模式切换模块208和标签模块209。前述模块的每一个可以连接到总线102。页面错误分析器201、跟踪模块202、决策树模块203、页面比较模块204、页面插入模块205、页面表更新模块206、处理执行模块207、模式切换模块208和标签模块209的每一个可以包括模块、段、指令或数据的部分,这包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行的指令或数据,其可以以存储器的形式体现。总线102将可以包括页面错误分析器201、跟踪模块202、决策树模块203、页面比较模块204、页面插入模块205、页面表更新模块206、处理执行模块207、模式切换模块208和标签模块209的各种系统组件耦接到处理器,例如用于执行由这些组件提供的指令或数据的硬件处理器。例如,图7中描绘的总线102可以连接到图2中描绘的计算机服务器系统1312的总线1318以将这些组件连接到由参考标号1316标识的计算机服务器系统1312的硬件处理器。

在一些实施例中,页面错误分析器201在服务已经不活动之后检查在该服务的处理期间的页面错误的地址。关于页面错误分析器的进一步的细节通过在图5中描绘的方法的步骤15的说明提供。

在一些实施例中,跟踪模块202在至少一个预取组中记录引起页面错误的地址。关于跟踪模块202的进一步细节通过在图5中描绘的方法的步骤20的说明提供。

决策树模块203从在该至少一个预取组中的页面错误数据创建预取决策树,例如,如图6中所示。预取决策树可以包括提供页面在服务请求期间将被触碰的概率的多个边缘。决策树模块203的功能已经以上在图5中描绘的方法的步骤25以及图6中描绘的决策树的说明中描述。

在一些实施例中,进一步参考图5中示出的方法的步骤35和40描述了页面比较模块204,其在重新激活的服务请求之后被激活。例如,页面比较模块204比较来自用于服务的初始页面表的页面以根据预取决策树确定这些页面是否在驻留存储器中作为预取的页面。

页面插入模块205在入参数/出参数向量中插入之前页出的页面以用于批量恢复。页面表更新模块206将页入的页面插入到初始页面表中以提供用于执行的更新的页面表。关于页面插入模块205和页面表更新模块206的功能的进一步细节在上面参考图5描述的方法的步骤45的描述中提供。

参考图7,重新激活时间减少系统200还包括处理执行模块207以使用更新的页面表提供、即运行服务,其中如上所述执行基本上避免了页面错误。重新激活时间减少系统200还包括模式切换模块208和标签模块209。模式切换模块208可以在非参与模式、学习模式和最优化模式之间改变重新激活时间减少系统200的模式。已经关于参考图5所述的方法的步骤10、30和50在上面描述了关于模式切换模块208的进一步细节。模式切换模块208可以包括提供与处理(或全局)相关联的延迟参数的子模块,该延迟参数指定在重新活动时间减少系统200被激活之前处理应该不活动多长时间。标签模块209可以提供与处理相关联的标签以使能跟踪。

当然,如由本领域技术人员很容易构思的,处理系统200还可以包括其它元件(未示出),也可以省略某些元件。例如,如本领域技术人员很容易理解的,取决于处理系统200的具体实现方式,各种其它输入装置和/或输出装置可以被包含在处理系统200中。例如,可以使用各种类型的无线和/或有线的输入和/或输出装置。此外,如本领域技术人员很容易认识到的,也可以使用以各种配置的额外的处理器、控制器、存储器等。给出本文提供的本发明原理的教导,本领域技术人员很容易构思处理系统200的这些和其它变化。

还需注意的是,前述模块的每一个不需要以硬件实现。例如,页面错误分析器201、跟踪模块202、决策树模块203、页面比较模块204、页面插入模块205、页面表更新模块206、处理执行模块207、模式切换模块208和标签模块209的每一个可以作为软件指令来提供。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或媒介),其上具有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子的非穷举的列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言—诸如java、smalltalk、c++等、以及常规的过程式编程语言—诸如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户的计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息以个性化定制电子电路来执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

计算机可读程序指令页可以加载到计算机、其它可编程数据处理装置或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现

说明书中参考本发明的“一个实施例”或“实施例”以及其其它变形意味着结合实施例描述的特定的特征、结构、特性等被包含在本发明的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”的出现以及贯穿说明书在各种地方出现的任何其它变形不一定都指相同的实施例。

应理解的是,以下“/”、“和/或”和“其至少一个”的任一个的使用,例如,在“a/b”、“a和/或b”以及“a和b的至少一个”的情况中,意欲包含仅有第一列出的选项(a)的选择、或者仅有第二列出的选项(b)的选择或者两个选项(a和b)的选择。作为进一步的示例,在“a、b和/或c”以及“a、b和c的至少一个”的情况中,这样的短语意欲包含仅有第一列出的选项(a)的选择、或者仅有第二列出的选项(b)的选择、或者仅有第三列出的选项(c)的选择、或者仅有第一和第二列出的选项(a和b)的选择、或者仅有第一和第三列出的选项(a和c)的选择、或者仅有第二和第三列出的选项(b和c)的选择或者所有三个选项(a和b和c)的选择。如由本领域普通技术人员容易地理解的,这对于许多列出的事件可以延伸。

已经描述了系统和方法的优选实施例(其意欲为示意性的并且不是限制性的),注意的是,鉴于以上教导本领域技术人员可以做出修改和变化。因此,将理解的是,可以在由所附权利要求概括的本发明的范围内的公开的特定实施例中做出改变。已经因此描述了发明的方面,具有由专利法所要求的细节以及特质,由专利证书保护的所要求和期望的在所附权利要求中阐述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1