一种用于评估应用的性能的方法和系统的制作方法

文档序号:7778315阅读:151来源:国知局
一种用于评估应用的性能的方法和系统的制作方法
【专利摘要】一种用于评估一应用从该应用当前正在其中执行的第一环境迁移至一不同的第二环境时的性能的方法,该方法包括:利用从在第一环境中执行的所述应用获取的数据来生成配置文件,将所述配置文件安装在驻留在第二环境中的虚拟机中,在安装之后运行所述虚拟机中的所述应用,以及从所述虚拟机获取指示所述性能的指标。
【专利说明】一种用于评估应用的性能的方法和系统
【技术领域】
[0001 ] 本发明总体上涉及数据迁移,并且更具体地说,涉及分布式应用的迁移。
【背景技术】
[0002]分布式应用是这样一种应用,其中,呈现、应用处理以及数据管理在多个协作服务器上作为逻辑上分离的过程来执行。这些服务器例如可能包括,一个或多个超文本传输协议(HTTP)服务器、应用服务器和/或关系数据库管理系统。
[0003]当一分布式应用要迁移至新环境(例如,云环境)时,通常难于估计该应用将会怎样在新环境中执行。例如,一些软件包在新环境中可能彼此冲突,从而负面地影响应用性能。然而,在没有在新环境中实际安装并配置该应用的情况下,难于准确地估计该应用在新环境中的性能。尽管分布式应用可以在新环境中完全重新安装和重新配置,但该方法出于几个理由而并不理想。一个理由是,由于应用层级之间的微妙相依性、潜在的复杂配置、以及特定于应用的处理,安装变得复杂。而且,迁移和存储与一分布式应用相关联的所有数据昂贵且劳动密集。
[0004]避免在新环境中完全重新安装分布式应用的其它方法同样具有缺点。例如,微基准(micro-benchmark)可以在当前环境和新环境中运行,以获知性能差异,并且接着可以构建针对当前环境的性能模型,并利用该微基准将其变换到新环境中。然而,所选的建模技术的弱点也被延续到结果中,并且模型变换也会引入不准确性。另选的是,该应用可以深度轮廓化,以构造模仿该应用的资源消耗的稻草人(straw man)应用。然而,难于准确地模仿某些资源消耗和执行行为,诸如线程同步化和存储器使用。

【发明内容】

[0005]一种用于评估一应用从该应用当前正在其中执行的第一环境迁移至一不同的第二环境时的性能的方法,该方法包括:利用从在第一环境中执行的所述应用获取的数据来生成配置文件,将所述配置文件安装在驻留在第二环境中的虚拟机中,在安装之后运行所述虚拟机中的所述应用,以及从所述虚拟机获取指示所述性能的指标。
[0006]由此,本发明的实施例在目标环境中复制了应用要迁移至的执行环境。这通过拦截系统库调用并且修改输入/输出参数和返回值来实现。未修改的应用二进制(application binary)被直接使用。
【专利附图】

【附图说明】
[0007]按照可以详细理解本发明的上述特征的方式,可以参照多个实施例对本发明进行更具体描述,其中一些实施例在附图中进行了例示。然而,要注意的是,附图仅例示了本发明的典型实施例,并由此,不应被视为对本发明范围的限制,对于本发明来说,可以允许其它等效实施例。
[0008]图1是描绘本发明的实施例可以部署在其中的网络的一个示例的框图;[0009]图2A-2C是例示根据本发明的、用于复制网络设置的技术的一个实施例的框图;
[0010]图3是例示根据本发明的实施例的、用于在新环境中自动复制分布式应用的方法的一个实施例的流程图;
[0011]图4是例示根据本发明的、用于处理应用的新交互和/或随后迁移的技术的一个实施例的框图;以及
[0012]图5是利用通用计算装置来实现的性能评估方法的高级框图。
【具体实施方式】
[0013]在一个实施例中,本发明是用于评估新环境中的分布式应用性能的方法和装置。本发明的实施例将应用的原始执行环境复制到新的服务器集合中,并且使用应用二进制来驱动性能测量。具体来说,所复制环境包括原始环境的网络因特网协议(IP)配置、库文件、目录结构、用户帐户、环境变量等,其允许正确执行应用二进制。准确的性能指标可以根据该应用在所复制环境中的成功部署而获取,因为该应用将按和其消耗原始环境中的资源相同的方式来消耗复制环境中的资源。这将允许所有执行上错综复杂的事物(例如,中央处理单元(CPU)缓存影响、线程同步化等)显露。
[0014]图1是描绘本发明的实施例可以部署在其中的网络100的一个示例的框图。网络100可以是任何类型的通信网络,举例来说,如因特网协议(IP)网络(例如,IP多媒体子系统(MS)网络,异步传输模式(ATM)网络、无线网络、蜂窝网络、长期演进(LTE)网络等)。“IP网络”被宽泛定义为使用因特网协议来交换数据包的网络。另外的示例性IP网络包括:话音IP (VoIP)网络、服务IP (SoIP)网络等。
[0015]在一个实施例中,网络100可以包括核心网络102。核心网络102可以与一个或多个接入网络120和122通信。接入网络120和122可以包括:无线接入网络(例如,WiFi网络等)、蜂窝接入网络、线缆接入网络、无线接入网络等。在一个实施例中,接入网络120和122可以都是不同类型的接入网络,可以都是同一类型的接入网络,或者一些接入网络可以是同一类型的接入网络,而其它接入网络可以是不同类型的接入网络。核心网络102和接入网络120与122可以由不同服务提供方、同一服务提供方或其组合来运行。
[0016]在一个实施例中,核心网络102可以包括应用服务器(AS) 104和数据库(DB) 106。尽管仅例示了单个AS104和单个DB106,但应注意到,可以部署任何数量的应用服务器104或数据库106。例如,核心网络102可以包括其中服务和应用以高度分布式方式支持的云环境的一部分。
[0017]在一个实施例中,AS 104可以包括如图5所示的通用计算机并且在下面进行讨论。在一个实施例中,AS104可以执行下面讨论的与评估分布式应用性能有关的方法和算法。例如,AS104可以发起应用的迁移和/或维持IP绑定状态。
[0018]在一个实施例中,DB106存储与被迁移的分布式应用有关的数据。例如,DB106可以存储用于系统调用的输入和输出参数、文件系统设置、用户帐户设置、以及环境变量等等。尽管仅例示了一个DB106,但网络100可以包括多个数据库。
[0019]在一个实施例中,接入网络120可以与一个或多个用户端点装置(也称为“端点装置”或“UE”)108和110通信。在一个实施例中,接入网络122可以与一个或多个用户端点装置112和114通信。[0020]在一个实施例中,用户端点装置108、110、112以及114可以是能够访问来自基于云的服务提供方的服务的任何类型的端点装置,如台式计算机,或移动端点装置,诸如蜂窝电话、智能电话、平板计算机、膝上型计算机、上网本、超级本(ultrabook)、便携式媒体装置(例如,MP3播放器)、游戏机、便携式游戏装置等。应注意到,尽管图1中仅例示了四个用户端点装置,但可以部署任何数量的用户端点装置。
[0021]应注意到,网络100已经简化。例如,网络100可以包括其它网络部件(未示出),如边界部件、路由器、交换机、策略服务器、安全装置、内容分布网络(⑶N)等。
[0022]如上所述,本发明的实施例在新的服务器集合中复制应用的原始执行环境,包括网络设置和文件系统设置。在一个实施例中,网络设置经由在该应用与内核之间引入的软件层来复制,该软件层替换与网络建立和拆除有关的所选择的系统调用的输入参数和输出。在另一实施例中,文件系统设置通过将该应用访问的文件打包并将它们拷贝到新服务器而被复制。新环境还被更新以匹配用户帐户设置和环境变量。
[0023]图2A-2C是例示根据本发明的、用于复制网络设置的技术的一个实施例的框图。具体来说,所例示的技术通过在该应用与操作系统之间的交互点处介入来提供与原始执行环境相同的执行环境的错觉。
[0024]图2A例示了在原始执行环境中,示例性应用200在迁移之前的操作。如所示,应用200与包括文件系统和网络协议栈的操作系统204联合操作。根据该应用200,第一服务器206可能希望与第二服务器208通信。在迁移之前,第一服务器206具有示例性IP地址
9.2.2.1,而第二服务器208具有示例性IP地址9.2.2.2。由此,当第一服务器206希望连接至第二服务器208时,第一服务器206利用期望目的地IP地址9.2.2.2发送消息,以发起该连接。第二服务器208期待或识别来自IP地址9.2.2.1的消息,并且接受该消息以建立连接。
[0025]图2B例示了示例性应用200迁移到新执行环境之后的操作。如所示,该迁移导致了针对第一服务器206和第二服务器208的IP地址的变化(具体来说,在新执行环境中模仿第一服务器206和第二服务器208的虚拟机具有新的、不同的IP地址)。特别地,第一服务器的IP地址已经从9.2.2.1改变成8.4.4.1,而第二服务器的IP地址已经从9.2.2.2改变成8.4.4.2。然而,服务器206和208可能未获知彼此的新IP地址。由此,当第一服务器206利用期望目的地IP地址9.2.2.2发送消息以发起连接时,该连接尝试将经历出错。IP地址9.2.2.2在新执行环境中不存在。而且,第二服务器208将不会期待或识别来自IP地址8.4.4.1的消息。
[0026]图2C例示了示例性应用200在迁移之后并且实施了本发明的技术的操作。在这种情况下,伪装层210插入在应用200与被复制应用的操作系统204之间。伪装层210包括这样的软件和/硬件,即,其拦截系统调用并利用期望值替换该系统调用中涉及的实际值,由此产生执行环境未改变的错觉,并且使迁移对于应用200透明。
[0027]例如,参照图2B所示的出错示例,伪装层210将拦截第一服务器的消息并且将期望目的地IP地址9.2.2.2变换成第二服务器的新IP地址8.4.2.2。类似的是,当该消息由第二服务器208接收时,伪装层210将拦截第一服务器的消息并且将第一服务器的新IP地址8.4.4.1变换成期望的源IP地址9.2.2.1。在一个实施例中,网络地址变换在库层级提供,而非由网络协议栈来提供。例如,本地IP地址可以通过拦截输入/输出控制系统调用来变换(例如,在Linux中利用ioctl (SIOCGIFFLAGS)命令);网络端点可以通过检索本地绑定名称或指定套接字的对等地址来变换(例如,在Linux中利用getsocknameO或getpeername O );主机名称可以通过拦截命名当前系统的字符串来变换(例如,在Linux中利用unameO命令);以及域名称系统查找可以通过从一数据库中检索主机信息来变换(例如,在Linux中利用gethostnameO命令)。
[0028]而且,如所示,图2C所示的文件系统被封入一虚线框内。该虚线框指示该文件系统在从原始执行环境拷贝到新执行环境之后被“监禁”(例如,利用UNIX Chicot操作来伪装该文件系统)。然而,在一个实施例中,诸如处理文件(例如,/proc)、设备文件(例如,/dev)、以及非处理相关系统文件(例如,/sys)之类的特定文件系统是从新的虚拟机安装的(即,使可访问)的,而非从原始执行环境迁移的。
[0029]由此,本发明在服务器复制之后拦截应用-操作系统交互,并且修改这些交互中的数据(例如,IP地址和主机名称),以便提供执行环境未改变的错觉。该应用由此被允许利用来自预复制/迁移执行环境的原始IP地址和主机名称来继续。所有配置文件和数据文件的位置保持不变,并且环境变量被再现。
[0030]应当清楚,尽管图2A-2C例示了在连接操作的示例性上下文中的本发明实施例,但图2C所示相同技术可以被实现以同样促进其它操作(例如,检测某人自己的IP地址)。
[0031]图3是例示根据本发明的实施例的、用于在新环境中自动复制分布式应用的方法300的一个实施例的流程图。具体来说,方法300通过在所复制应用中包括伪装层来复制要被迁移的应用,如图2C所示。在一个实施例中,方法300由AS104执行,其在这种情况下,通过收集来自原始执行环境的数据、生成新配置文件、以及在新执行环境中运行新虚拟机来管理该应用的迁移。
[0032]该方法300从步骤302开始。在步骤304中,AS104收集来自在原始执行环境中执行的应用的网络和文件系统信息。在一个实施例中,该网络和文件系统信息包括:用于系统调用的输入和输出参数、文件系统设置、用户帐户设置、以及环境变量等等。在一个实施例中,AS104将该信息存储在DB106中。
[0033]在步骤306中,AS104在新执行环境中运行一个或多个新虚拟机。这些虚拟机模仿部署在原始执行环境中的服务器,并且可以根据任何已知技术来运行。
[0034]在步骤308中,AS104获取用于这些虚拟机的IP地址。这些IP地址还可以存储在DB106中。
[0035]在步骤310中,AS104利用旧IP地址(驻留在原始执行环境中的服务器的IP地址)和新IP地址(在新执行环境中运行的虚拟机的IP地址)来生成用于该执行环境的配置文件。
[0036]在步骤312中,AS104在该虚拟机中安装该配置文件。接着,在步骤314,AS104在每一个虚拟机中开始该应用。在步骤316中,方法300结束。
[0037]方法300由此在新执行环境中的新服务器集合中复制原始执行环境。将该应用成功部署在所复制的环境中允许获取准确的性能指标,因为所复制的服务器按它们在原始执行环境中的相同方式来消耗资源。
[0038]方法300可以在应用的初始迁移期间甚或在迁移之后执行,以便于持续的迁移后管理。在执行初始迁移的情况下,方法300可以在完全迁移(B卩,其中,迁移了全部应用组件)或部分迁移(例如,应用组件的逐步迁移,或者其中仅迁移这些组件的子集的迁移)期间执行。方法300还可以在这样的初始迁移期间实现:即,将整个应用迁移至单个云,将应用的不同部分迁移至多个不同云,或者保持应用的某些部分在内部(例如,在原始执行环境中)而将该应用的其它部分迁移至一个或多个云。
[0039]在执行已经迁移的应用的持续管理的情况下,方法300可以被用于执行云之间的迁移(例如,包括跨个多云重新分布应用组件,以使应用最优化),或者促进采用伪装层(诸如所公开的伪装层)的应用之间的新的交互(例如,应用组件可以在交互时段之后被迁移至分别的云)。
[0040]图4是例示根据本发明的、用于处理应用的新的交互和/或随后的迁移的技术的一个实施例的框图。具体来说,图4例示了用于解决具有相同IP地址的两个迁移应用之间的冲突的技术。
[0041]图4由此包括:第一应用,该第一应用包括第一多个服务器40(^-40(^ (统称为“第一应用400”)并且在第一家庭环境404中执行;第二应用,该第二应用包括第二多个服务器402r402m (统称为“第二应用402”)并且在第二家庭环境406中执行。第一应用400和第二应用402都从它们各自的家庭环境迁移至第一云环境408 ;随后,第二应用402被迁移至第二云环境410。尽管未不出,但第一家庭环境404、第二家庭环境406、第一云环境408和第二云环境410中的每一个还都包括诸如根据方法300操作的AS104的服务器。
[0042]如所示,在它们各自的家庭环境中,第一应用400的服务器4002和第二应用402的服务器4022具有相同示例性IP地址(B卩,10.1.1.5)。然而,当迁移至第一云环境408时,服务器4002和服务器4022都被指配新IP地址(B卩,分别为9.1.1.4和9.1.1.3),以解决该冲突。由此,在将应用400和402都迁移至第一云环境408的第一次迁移之后,服务器4002看到服务器4022的IP地址为9.1.1.3,而服务器4022看到服务器4002的IP地址为9.1.1.4。
[0043]然而,当第二应用40·2随后被迁移至第二云环境410时,第一应用400保留在第一云环境408中。第二应用402的服务器4021-402?1被指配新IP地址;用于服务器4022的示例性新IP地址为8.3.12.121。AS104在第一云环境408中操作。在第二云环境408中操作的AS104知道用于服务器的新IP地址,并且相应地更新第二应用的配置文件中的IP映射。
[0044]图5是利用通用计算装置500来实现的性能评估方法的高级框图。在一个实施例中,通用计算装置500包括:处理器502、存储器504、性能评估模块505以及各种输入/输出(I/O)装置506,如显示器、键盘、鼠标、输入笔(stylus)、无线网络接入卡、以太网接口等。在一个实施例中,至少一个I/O装置是存储装置(例如,盘驱动器、光盘驱动器、软盘驱动器)。应当明白,性能评估模块505可以被实现为通过通信信道耦接至处理器的子系统或物理装置。
[0045]另选的是,性能评估模块505可以用一个或多个软件应用(甚或软件和硬件的组合,例如,利用专用集成电路(ASIC))来表示,其中,该软件从存储介质(例如,I/O装置506)加载,并且通过处理器502在通用计算装置500的存储器504中操作。由此,在一个实施例中,用于评估新环境中的应用性能的性能评估模块505 (如在此参照前述图描述的)可以存储在计算机可读存储介质上(例如,RAM、磁性或光学驱动器或盘等)。
[0046]应注意到,尽管未明确指定,但在此描述的方法的一个或多个步骤可以针对特定应用在需要时包括存储、显示和/或输出步骤。换句话说,在该方法中讨论的任何数据、记录、字段、和/或中间结果可以针对特定应用在需要时被存储、显示、和/或输出至另一装置。而且,附图中的、陈述确定操作或涉及判定的步骤或框不必要求该确定操作的两个分支都被实践。换句话说,该确定操作的分支之一可以被视为可选步骤。
[0047]虽然前述致力于本发明的实施例,但可以在不脱离本发明的基本范围的情况下,设想本发明的其它和进一步实施例。在此呈现的各种实施例或其部分,可以被组合以创建另一些实施例。而且,诸如顶、侧、底、前、后等的术语是相对或方位术语,并且参照附图中例示的示例性实施例来使用,因而,这些术语可以互换。
【权利要求】
1.一种用于评估一应用从该应用当前正在其中执行的第一环境迁移至一不同的第二环境时的性能的方法,该方法包括: 利用从在第一环境中执行的所述应用获取的数据来生成配置文件; 将所述配置文件安装在驻留在第二环境中的虚拟机中; 在安装之后运行所述虚拟机中的所述应用;以及 从所述虚拟机获取指示所述性能的指标。
2.根据权利要求1所述的方法,其中,所述数据包括网络信息和文件系统信息。
3.根据权利要求2所述的方法,其中,所述网络信息包括用于系统调用的输入和输出参数。
4.根据权利要求2所述的方法,其中,所述文件系统信息包括文件系统设置。
5.根据权利要求2所述的方法,其中,所述文件系统信息包括用户帐户设置。
6.根据权利要求2所述的方法,其中,所述网络信息包括环境变量。
7.根据权利要求2所述的方法,其中,所述网络信息包括因特网协议配置。
8.根据权利要求1所述的方法,其中,所述配置文件将与在第一环境中执行的所述应用相关联的旧因特网协议地址变换成与第二环境中的所述虚拟机相关联的新因特网协议地址。
9.根据权利要求1所`述的方法,其中,所述配置文件替换与网络建立和拆除有关的系统调用的输入参数。
10.根据权利要求1所述的方法,其中,所述配置文件替换与网络建立和拆除有关的系统调用的输出。
11.根据权利要求1所述的方法,还包括: 将所述应用访问的文件从第一环境拷贝到第二环境中的服务器。
12.根据权利要求1所述的方法,其中,所述配置文件使得在所述虚拟机中运行的应用看起来是该应用继续在第一环境中执行。
13.根据权利要求1所述的方法,其中,仅第二环境是云环境。
14.根据权利要求1所述的方法,其中,第一环境和第二环境都是云环境。
15.根据权利要求1所述的方法,其中,仅所述应用的第一部分被迁移至第二环境。
16.根据权利要求15所述的方法,其中,第二环境是所述应用的不同部分所迁移至的多个不同云环境之一。
17.根据权利要求1所述的方法,其中,所述应用的第二部分继续在第一环境中执行。
18.根据权利要求1所述的方法,其中,所述应用从第一环境至第二环境的迁移导致该应用与另一应用之间的新的交互。
19.一种用于评估一应用从该应用当前正在其中执行的第一环境迁移至一不同的第二环境时的性能的系统,该系统包括执行根据权利要求1至18中的任一项所述的方法步骤的>j-U ρ?α装直。
【文档编号】H04L12/24GK103873290SQ201310627208
【公开日】2014年6月18日 申请日期:2013年11月29日 优先权日:2012年12月14日
【发明者】S·A·百思特, 黄海, B·C·塔克, 唐春强, 王龙 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1