一种为至少一个软件系统设置配置参数的方法,包括以下步骤:a)接收对用于将被最优化的至少一个软件系统的一组配置参数的标识;b)从用于每个感兴趣的配置参数的预定范围内选择一随机值;c)将每个配置参数设置为对应的所选择的随机值;d)使用选择的值运行应用;e)在该应用运行时,收集与该软件系统有关的性能信息;f)将步骤b)到e)重复选定的次数;以及g)分析收集到的性能信息以确定最优的配置参数。该方法可由运行用于执行上述方法步骤的程序指令的可编程计算机系统,或由专用装置例如ASIC(专用集成电路)执行。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及软件系统领域,并尤其涉及确定软件系统的最优配置设置。
技术介绍
如今,大规模商业应用的发展必须处理许多问题。这些问题中有并行性管理、事务管理、持久性、安全性、表示、业务逻辑。所有这些问题必须在应用、硬件/软件拓朴和工作负荷的框架内解决。此框架内的每个软件组件可能具有一些必须正确设置以便系统正确工作的配置参数。不正确的配置会导致应用发生故障或性能降低,这两者对组织都是代价高昂的。诸如Sun Microsystem公司开发的JavaTM2平台、企业版(J2EETM)的框架被设计为通过支持问题的分离来简化对系统的配置过程。应用开发人员可以主要集中于实现应用的业务逻辑方面;该应用被部署于其上的应用服务器处理并行性、事务以及持久性管理的大部分复杂性。在此框架内,部署者,即配置应用服务器以正确和有效地管理并行性、事务和持久性的个人,起着核心作用。企业系统非常复杂,负责配置这种系统的部署者必须处理以下事情1)应用本身与数据之间的交互会影响应用服务器的配置,而部署者通常不具有足够的文档以处理此问题;2)该应用与之交互的硬件和软件系统会严重影响其部署;3)该应用的工作负荷会影响应用服务器的配置;4)最佳实践指南和基于规则的简档是试探法,其不可能覆盖应用、硬件/软件拓朴和工作负荷的全部空间,并且它们本身可能已基于错误的前提;以及5)基于配置的问题通常难以跟踪并且跟踪比较昂贵,因为经常的情况是,当应用发生故障时假设是应用本身有缺陷,并消耗资源来查找被认为是程序错误的故障原因。单纯的配置空间大小和复杂性就使其非常难以管理。当如通常的情况那样,设置配置的部署者不是设计该系统的同一人,并且不是该系统的用户时,这种情况会更复杂。通常,部署者是在配置遗留系统。由于没有可随意使用的适当的工具,部署者必须使用经验法则、直觉以及试错的混合来配置应用服务器。对于较小的系统,控制理论提供了适当的方法以通过合适的软件模型来确定配置值,但是对于实际见到的大的系统拓朴例如企业系统,难以得出该系统的合适的模型。即使可开发出模型,该模型也极不可能扩展到其他应用部署,因此需要一种配置大系统的方法。参照图1,其示出根据现有技术用于应用服务器部署的传统拓朴的框图。Web服务器103和105将请求从因特网101指引到应用服务器120和121。应用服务器120和121连接到后端数据库150,企业数据持久存储在该数据库内。参照图2,其示出根据现有技术的基于J2EE的应用服务器的结构的框图。用于此系统的应用服务器120通常用Java编写,因此整个系统在一个或多个Java虚拟机(JVM)260中执行。如上所述,J2EE支持各问题的分离;因此应用服务器120分为表示层、业务逻辑层、以及数据层。Web容器230对应于表示层。它管理与Web服务器103的交互。通过Web服务器103将浏览器请求路由到Web容器230,在该Web容器230处或者返回静态HTML页,或者启动Java服务器页(JSP)或小服务程序的执行。该JSP或小服务程序可继而与业务逻辑层交互,并最终合成返回给用户的HTML。Web容器230通过控制一次可执行多少个线程来确定小服务程序的并行性。Enterprise JavaBeans(EJB)容器235对应于业务逻辑层。EJB容器235管理在服务器120上部署的Enterprise Java Bean的创建和执行。此外,它控制EJB的事务处理行为、它们的并行性以及它们的缓存。它还控制EJB与数据源240的交互,该数据源对应于数据层。数据源240是数据库的抽象。IT部门在连接池中管理与数据库150的连接以降低创建新连接所涉及的花费。当EJB不再需要与数据库连接时,不是关闭该连接,而是将该连接返回该池以便以后再次使用。此外,数据源240保持语句缓存,该语句缓存用于减小处理经常执行的结构化查询语言(SQL)请求的成本。附图说明图1示出根据现有技术的传统的应用服务器配置的拓朴。图2示出根据现有技术的基于J2EE的应用服务器的结构的表示。图3是示出根据本专利技术的方法的流程图。图4是示出根据本专利技术的用于实验的硬件的图。图5是示出25个随机配置空间探索运行中的每一个的吞吐量的条形图。图6示出将吞吐量表示为最大数据源连接池大小和EJB容器线程池大小之间的差值的函数的图。图7是示出25个配置空间探索运行中的每一个的平均响应时间的条形图。图8是计算机程序产品的简化框图,在该程序产品上可有利地使用本专利技术的实施例。具体实施例方式简单地说,根据被要求保护的专利技术,一种为至少一个软件系统设置配置参数的方法包括以下步骤a)接收对用于将被最优化的至少一个软件系统的一组配置参数的标识;b)从预定范围内为每个感兴趣的配置参数选择一随机值;c)将每个配置参数设置为对应的所选择的随机值;d)使用所选择的值运行应用;e)在该应用运行时,收集与该软件系统有关的性能信息;f)将步骤b)到e)重复选定的次数;以及g)分析收集到的性能信息以确定最优的配置参数。该方法可由运行程序指令以执行上述方法步骤的可编程计算机系统执行,或由专用装置例如ASIC(专用集成电路)执行。本文描述一种解决为一软件系统例如应用服务器或一组互连软件系统例如图2所示的包含应用服务器、JVM、数据库和Web服务器的系统确定正确配置的问题的低成本方法。本专利技术可用于各种各样的软件系统,这是因为该方法会自主探索应用的配置空间,并然后分析探索结果以确定最优配置。本方法在用于确定企业系统的配置时是尤其有益的,对企业系统目前没有合适的方法。从值的一合理范围内随机选择涉及给定系统的系统配置参数,然后在设置为所选择的参数的系统上运行一工作负荷。每个测试运行的结果被记录下来以用于随后的分析。为了消除应用本身的问题,应用首先应以给定的配置运行多次以确定相对于该配置该应用的行为表现是确定性的。这意味着应用结果与配置直接相关,而不会受外界因素例如应用中的程序错误或网络问题影响。该应用应以同样的配置运行足够的次数以向了解该系统的人确保其无程序错误,以及考虑和消除在试验自身之外的会影响结果的因素。假设15次是此初始步骤的合适的运行次数。应用的行为表现必须相当一致,即对于给定的配置性能没有表现出大的摆动。预期系统性能中有微小的变化,并且只要它们落在可接受范围内就容忍它们。该范围可以是由具有该系统的知识的某人确定的最小到最大标准偏差/平均值。当应用满足此要求时,在不同运行之间性能的变化可被归因于配置值中的变化的影响。参照图3,其示出根据本专利技术的一个实施例的确定应用服务器的最优配置设置的过程的流程图。此过程在步骤301开始,在该步骤为此系统选择一组被认为将影响此给定系统的性能的配置参数。选择的参数依赖于许多因素,例如系统本身;在该系统上运行的应用;应用与之交互的硬件和软件系统;网络特性;网络中的机器的数量;网络的拓朴;以及应用的工作负荷。对于企业系统,一部署者可以处理超过50个待设置参数。为了示出此方法的好处,下面的示例示出了在J2EE框架内部署应用时配置应用服务器的过程中所涉及的一些问题。假设要解决的问题是图2中所示的应用服务器的最优配置。存在许多会影响这种系统的性能的参数,但是为此示例的目的,选择了表1中所示的以下9个参数作为最重要的 本文档来自技高网...
【技术保护点】
一种为至少一个软件系统设置配置参数的方法,包括以下步骤:a)接收用于将被最优化的至少一个软件系统的一组配置参数;b)从用于每个感兴趣的配置参数的预定范围中选择随机值;c)将每个配置参数设置为对应的随机值;d) 使用选择的值运行应用;e)在该应用运行时,收集与该软件系统有关的性能信息;f)将步骤b)到e)重复选定的次数;以及g)分析收集到的性能信息以确定最优的配置参数。
【技术特征摘要】
【国外来华专利技术】US 2003-4-17 10/417,9941.一种为至少一个软件系统设置配置参数的方法,包括以下步骤a)接收用于将被最优化的至少一个软件系统的一组配置参数;b)从用于每个感兴趣的配置参数的预定范围中选择随机值;c)将每个配置参数设置为对应的随机值;d)使用选择的值运行应用;e)在该应用运行时,收集与该软件系统有关的性能信息;f)将步骤b)到e)重复选定的次数;以及g)分析收集到的性能信息以确定最优的配置参数。2.根据权利要求1的方法,其中,步骤b)还包括在选择随机值之前选择配置参数的范围。3.根据权利要求2的方法,其中,步骤b)还包括在选择配置参数的范围时执行一致性检验。4.根据权利要求1的方法,其中,该应用服务器包括Java虚拟机,并且步骤b)包括选择用于堆的最大值的256-512兆字节的范围。5.根据权利要求1的方法,其中,步骤d)包括相对于应用服务器运行工作负荷,以及步骤e)包括测量该应用服务器的...
【专利技术属性】
技术研发人员:M拉加伐查里,RD约翰逊,DC赖默,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。