用于通过优化性能模型提高软件执行时间的方法和系统技术方案

技术编号:7574231 阅读:225 留言:0更新日期:2012-07-15 10:00
提供了一种表示应用在不同的系统资源条件下的行为的性能或可靠性模型。此模型可为一个或多个稀疏矩阵的形式,其提供了用于不同条件组合的可靠性或性能值。此模型被分发给应用的用户,并在应用执行期间参考由操作系统或其他监测软件提供的系统资源信息咨询该模型,以提供在当前操作条件下应用的预期性能的指示。此指示例如在该指示落入预定的满意操作界限以外的情况下可以通知给用户。系统也可尝试重新协商分配的系统资源以提高性能。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于根据软件片段可用的资源来管理该软件片段的行为的方法和系统。
技术介绍
根据设计阶段认可的功能测试(FVT)案例的结果来预测在客户生产环境中的应用的确切行为是极其具有挑战性的,即使其合并在软件开发实验室中普遍使用的附加测试 (容量规划、系统测试)中。最可能的是这种测试案例从功能的观点鉴别有意义的测试,但是其是在与生产阶段的确切客户执行环境不可能匹配的操作条件下执行的。大量应用解决此问题的广泛使用的方法是所谓的“容量规划”或“性能负载”测试,其中应用的一些特定 (例如准确的硬件资源需求)和有关的(例如可靠性)方面在不同的场景中测试。在这些场景中,操作环境与“理想”测试案例不同,因为在客户端生产期间对于软件应用可用的计算资源量不可预知在真实条件下,应用经常部署在大群集数据中心中,且其调度与其他并发应用一起发生,这样可用资源中可发生相当大的改变。这些是应用可用的计算资源相比于理想的单机系统或模拟测试可能改变的一部分原因。期望“容量规划”比当前可能的提供更精确的预测当前最好的实践是容量规划阶段的结果是应用在最坏条件下正确操作所需的硬件需求的定义。换句话说,“性能负载”或“容量规划”工具经常提供正确运行所需的操作资源的测量,即从功能的观点在“最坏情况”下。US5655074描述了一种用于大型软件系统的系统工程的软件工具。该处理开始于步骤针对每个可唯一识别的软件组件,收集关于软件系统的大量特征的观测数据(包括历史的和计划的系统调节)。还收集的是关于每个软件组件的缺陷或问题的历史数据。缺陷数据统计地映射至软件的测量特征,以建立风险指数。风险指数可用作建立预测软件性能的软件特征的预测工具,或者备选的,风险指数可用于为组件排序,以确定哪些组件在努力节省资源的情况下需要较少测试。
技术实现思路
如所讨论的,致力于识别最小系统需求的现有技术的测试技术是静态的方式。本专利技术的目的在于当应用在客户端环境中执行时,动态地提供关于应用的预期性能的信息。根据本专利技术,提供了一种如所附独立权利要求1的优化软件执行的方法,如所附权利要求12的设备、如所附权利要求13的计算机程序、如所附权利要求14的性能模型以及如所附权利要求15的计算机可读介质。进一步优选的实施例在从属权利要求中定义。通过查阅附图和详细描述,本专利技术的优点对于技术人员将变得清晰。其用意在于任何附加的优点也包含于此。附图说明本专利技术的实施例现将通过参照附图的示例的方式描述,在附图中相似的标记表示相似的元件,其中图1示出了本专利技术的第一实施例的步骤;图2示出了形式为多维空间200的性能模型的示例;图3示出了形式为多维空间300的性能模型的另一示例;图4示出了本专利技术的第二实施例的步骤;图5示出了本专利技术的第三实施例的步骤;以及图6示出了适于实施某些实施例的计算机环境。具体实施例方式提议结合性能模型将应用构建(设计、实施和组装)以及部署到操作环境中。该性能模型可以利用具有附加测量的应用测试过程来实现,其中附加测量专注于以关于该应用的特定范围优选为不可知的方式使得执行环境可用的资源,从而使其可应用于最大可能数量的应用。图1示出了本专利技术的第一实施例的步骤。如图所示,该过程开始于步骤100,继续进行至步骤110,在该步骤110提供了例如以下将进一步详细描述的性能模型。在步骤120, 执行与性能模型相关的应用,在步骤130,从例如操作系统或其他监测软件或硬件接收用于定义该模型的系统资源测量。在步骤140,该测量用于从性能模型中提取对应于所述测量的性能值。在步骤150,确定该应用是否已结束,在这种情况下该过程在步骤160结束、或者该过程返回至步骤130,使得只要该应用可运行,过程就继续根据监测的系统资源的可用性来监测软件的性能水平。相应地,提供了一种在执行软件的系统中优化所述软件的执行的方法,包括以下步骤提供代表不同系统条件下所述软件的性能的性能模型,其中系统条件以一个或多个预定系统资源来描述,接收给定时刻的每个预定系统资源的测量,以及从所述性能模型中提取对应于所述测量的性能值。在本说明书中使用的短语“性能”可以反映软件应用的任意期望行为。根据优选实施例,讨论中的性能标准为软件的可靠性。举例来说,例如作为操作环境的WebSphere应用服务器、Tomcat, JBoss等的应用服务器,和作为应用的J2EE应用,资源(cpu、存储器、磁盘空间、虚拟存储器等)将被识别并在形式上定义,因为资源也可与硬件资源在逻辑上且非直接地相关,例如由应用服务器使得对于J2EE应用可用的那些资源以及可以以编程方式使得可用的那些资源。一组固定的可用计算资源(例如IGB RAM、100GB磁盘空间、400套接字等)可以视为NR维空间中的应用操作点,其中NR是指与性能测量有关的选定计算资源(在托管 (hosting)环境中定义的计算资源的子集或全集)的数量。“性能模型”根据应用的每个功能测试案例来计算,使得其将允许每个应用操作点提供应用性能的数字形式测量(与相同软件的其他版本或相同软件的其他部署可比较)这是如何获得的将在实施部分详细解释。表达性能模型信息的人为结果可以是一个或多个矩阵,经常为稀疏矩阵,其中每个轴将与用于性能计算的一个计算资源相关联,并且每个单元将表示在正常化以后例如死机、服务质量的失误、异常、超时等“问题”发生的概率。每个这种“问题”优选地在形式上定义为条件,例如依照日志文件中文字的匹配、CIM信息模型上的布尔表达式等。根据某些实施例,性能模型可包括一组匪个不同矩阵,每个矩阵与特定定义的问题相关或根据附加标准甚至不同,例如涉及相同“问题”定义但针对不同平台。根据某些实施例,性能模型通过对软件测试而进行填充。此软件的测试可包括在配置了系统资源的每个预期组合的系统中重复执行该软件,以及汇编与在该配置下发生的行为有关的统计数据。可如此测试的系统资源的一个示例为系统存储器,系统或应用死机的发生可以用作用于统计数据基础的正式测量,其例如使用监听windows事件日志的日志监测软件来确定。可以在多种存储器条件中测试单个测试案例以将关于计算资源利用率的、软件程序的存储器消耗量“个性”或非功能性“方面”简档进行分类,在此示例中,计算资源是存储器,但是相同的方法可应用至套接字、cpu单元等。可预料的是,当可用存储器下降至某水平以下时测试案例将易于失败,这在真实环境下可能发生,因为其他应用正在消耗存储器。有利的是,通过允许经由程序接口来配置其计算资源的操作/执行环境,可以执行重复的测试。一个示例可以为虚拟机,其可以利用不同的资源参数顺序地重启。在这种环境中,根据要测试的参数重新定义存储器、处理器的数量或可用套接字的数量非常简单。 从多个测试执行得到的全部结果可以用于估计失败的平均概率,例如依照坏执行的测试案例的数量比上全部测试案例的数量,和/或其发生率的方差。如果测试条件由多维空间中的点来标识,其中每个坐标轴为一个计算资源。最后, 对于每个测试条件,可以估计具有平均参数值和方差参数值的概率密度分布(Pdf)并可与每个点相关。当测试案例重复的数量超过阈值(阈值本身可以使用显著性测试分析来计算)时,例如1000,可假设正态(高斯)Pdf。估计的平均中值和方差可在运行时应用,以用于动态估计在根据可用计算资源的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M·维拉尼V·夏卡R·甘杰米
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术