一种应用优化策略确定方法、装置及系统与流程

文档序号:12038892阅读:192来源:国知局
一种应用优化策略确定方法、装置及系统与流程
本发明涉及计算机技术领域,尤其涉及一种应用优化策略确定方法、装置及系统。

背景技术:
目前,应用(APP,Application)在实际运行和使用的过程中,为了更好的使用应用为用户提供服务,通常会定期的对应用进行性能优化。在确定对应用优化的优化策略时,一般需要参考当前应用的运行状况数据进行确定。云计算中的平台即服务(PaaS,Platform-as-a-server)模式,是将软件研发平台作为一种服务提供给用户,用户仅需将应用托管至PaaS平台上,应用的运维、数据监控和数据统计等工作均由PaaS平台来完成。现有针对PaaS平台上运行的应用确定优化策略的方案中,由于无法监控到应用的运行状况数据,所以仅能在本地对应用在PaaS平台上的运行环境进行模拟,并在模拟环境中运行该应用,得到运行状况数据,作为确定对该应用进行性能优化的优化策略所参考的运行状况数据。然而,由于应用在PaaS平台上运行时的真实环境受很多因素的影响,所以通过线下环境模拟很难准确的模拟真实的实际运行环境,从而使得根据模拟环境中运行该应用得到的运行状况数据所确定的优化策略,可能不适合该应用在真实运行环境中的运行,即造成由于确定的优化策略不合理,而使得优化效果较差的问题。

技术实现要素:
本发明实施例提供一种应用优化策略确定方法、装置及系统,用以解决现有技术中存在的针对PaaS平台上运行的应用确定的优化策略不合理的问题。本发明实施例提供一种应用优化策略确定方法,应用于PaaS平台上运行的第一应用,包括:所述第一应用在预设时间段内获取自身所位于进程的运行状况数据,作为所述PaaS平台上运行的且与所述第一应用位于同一进程中的第二应用的运行状况数据;基于获取的所述第二应用的运行状况数据,确定对所述第二应用进行性能优化的优化策略。本发明实施例还提供一种应用优化策略确定装置,集成于PaaS平台上运行的第一应用,包括:数据获取单元,用于在预设时间段内获取自身所位于进程的运行状况数据,作为所述PaaS平台上运行的且与所述第一应用位于同一进程中的第二应用的运行状况数据;策略确定单元,用于基于获取的所述第二应用的运行状况数据,确定对所述第二应用进行性能优化的优化策略。本发明实施例还提供一种应用优化策略确定系统,包括:PaaS平台上运行的第一应用,以及所述PaaS平台上运行的且与所述第一应用位于同一进程中的第二应用,其中:所述第一应用,用于在预设时间段内获取自身所位于进程的运行状况数据,作为所述PaaS平台上运行的且与所述第一应用位于同一进程中的第二应用的运行状况数据;并基于获取的所述第二应用的运行状况数据,确定对所述第二应用进行性能优化的优化策略。本发明有益效果包括:本发明实施例提供的方法中,在针对PaaS平台上运行的应用确定优化策略时,可以由第一应用获取自身所位于进程的运行状况数据,作为PaaS平台上运行的且与第一应用位于同一进程中的第二应用的运行状况数据,并基于获取的第二应用的运行状况数据,确定对第二应用进行性能优化的优化策略。由于第一应用和第二应用在PaaS平台上运行时位于同一个进程,所以第一应用和第二应用各自所位于进程的运行状况数据相同,所以该方法中第一应用获取自身所位于进程的运行状况数据,可以作为第二应用的运行状况数据,从而能够基于第二应用实际运行的运行状况数据,针对第二应用确定出更合理的优化策略。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为本发明实施例提供的应用优化策略确定方法的流程图;图2为本发明实施例提供的基于运行状况数据确定优化策略的处理流程图之一;图3为本发明实施例提供的基于运行状况数据确定优化策略的处理流程图之二;图4为本发明实施例提供的应用优化策略确定装置的结构示意图;图5为本发明实施例提供的应用优化策略确定系统的结构示意图。具体实施方式为了给出使得针对PaaS平台上运行的应用确定的优化策略更合理的实现方案,本发明实施例提供了一种应用优化策略确定方法、装置及系统,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明实施例提供一种应用优化策略确定方法,应用于PaaS平台上运行的第一应用,如图1所示,包括:步骤101、第一应用在预设时间段内获取自身所位于进程的运行状况数据,作为PaaS平台上运行的且与第一应用位于同一进程中的第二应用的运行状况数据。步骤102、基于获取的第二应用的运行状况数据,确定对第二应用进行性能优化的优化策略。在上述应用优化策略确定方法中,PaaS平台上运行的第二应用作为被优化应用,并由与第二应用位于同一进程的第一应用获取第二应用的运行状况数据,并基于获取的第二应用的运行状况数据,确定对第二应用进行性能优化的优化策略。由于第一应用也是运行在PaaS平台上的应用,所以其能够较容易的从应用所位于进程内获取到运行状况数据。由于一个应用所位于进程的运行状况数据可以表示该应用的运行状况,即可以作为该应用的运行状况数据,并且,上述方案中第一应用与第二应用位于同一进程,所以,第一应用获取的自身所位于进程的运行状况数据,是可以作为第二应用的运行状况数据的,从而能够获取到第二应用实际运行的运行状况数据,为后续确定出更合理的优化策略做准备。上述步骤101中,第一应用在获取自身所位于进程的运行状况数据时,具体可以通过自身包括的Java管理扩展(JMX,JavaManagementExtensions),确定自身所位于进程的待获取运行状况数据的数据接口,并从数据接口获取自身所位于进程的运行状况数据。JMX是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。本发明实施例中,具体如何通过JMX确定进程的待获取运行状况数据的数据接口,以及从数据接口获取进程的运行状况数据,可以参照现有的JMX技术,在此不再进行详细描述。本发明实施例中,所需要获取的运行状况数据,可以根据需要确定应用哪些方面的优化策略进行灵活设置,下面分别针对获取的不同类型的运行状况数据,对如何基于获取的第二应用的运行状况数据,确定对第二应用进行性能优化的优化策略进行详细描述。当上述步骤101中在预设时间段内是周期获取运行状况数据,并且每次获取的运行状况数据包括:监控时间、堆内存初始化值、堆内存使用值、堆内存提交值和堆内存最大值,上述步骤102中可以采用如下方式确定对第二应用进行性能优化的优化策略:第一种方式:如图2所示,包括如下步骤:步骤201、基于在预设时间段内每次获取的第二应用的监控时间、堆内存初始化值、堆内存使用值、堆内存提交值和堆内存最大值,确定在预设时间段内堆内存使用值的变化趋势中的各峰值,以及相邻峰值之间的间隔时间的平均间隔时间,其中,当一次获取的堆内存使用值大于其相邻两次监控的堆内存使用值时,该次获取的堆内存使用值即可以作为峰值。步骤202、根据在预设时间段内,平均间隔时间与预设间隔时间阈值的大小关系,以及各峰值与对应的堆内存最大值的大小关系,确定对第二应用的堆内存的优化策略,具体可以如下:当在预设时间段内,平均间隔时间小于预设间隔时间阈值,且各峰值越来越接近对应的堆内存最大值时,确定对第二应用减小堆内存的优化策略,否则,可以确定对第二应用增大堆内存的优化策略,也可以确定保持第二应用的堆内存不变的优化策略。第二种方式:根据在预设时间段内堆内存提交值的变化趋势,确定对第二应用的堆内存的优化策略,具体可以如下:当在预设时间段内,堆内存提交值呈现增长的趋势时,确定对第二应用减小堆内存的优化策略;当在预设时间段内,堆内存提交值呈现下降的趋势时,确定对第二应用增大堆内存的优化策略。第三种方式:根据在预设时间段内,堆内存提交值与对应的堆内存最大值的大小关系,确定对第二应用的堆内存的优化策略,具体可以如下:当在预设时间段内,堆内存提交值越来越接近对应的堆内存最大值时,确定对第二应用减小堆内存的优化策略;当在预设时间段内,当大于设定数量的堆内存提交值与对应的堆内存最大值之间的差值大于预设差值阈值时,确定对第二应用减小堆内存的优化策略。当上述步骤101中获取的运行状况数据包括:在预设时间段内进行应用垃圾回收的时间和次数,上述步骤102可以采用如下方式确定对第二应用进行性能优化的优化策略,如图3所示,包括:步骤301、基于获取的第二应用的在预设时间段内进行应用垃圾回收的时间和次数,确定在预设时间段内进行应用垃圾回收的平均回收时间,以及回收周期。其中,平均回收时间为多次进行应用垃圾回收的时间的平均值,回收周期可以为预设时间段的时长除以进行应用垃圾回收的次数得到的商值。步骤302、根据确定的平均回收时间与预设回收时间阈值的大小关系,以及回收周期与预设周期阈值的大小关系,确定对第二应用使用的应用垃圾回收算法进行性能优化的优化策略,具体可以如下:当平均回收时间大于预设回收时间阈值,且回收周期小于预设周期阈值时,确定对第二应用使用的应用垃圾回收算法进行调整的优化策略,例如,将应用垃圾回收算法从单线程回收变更为并发标记清理(CMS,ConcurrentMarkSweep)算法;当平均回收时间大于预设回收时间阈值,且回收周期小于预设周期阈值时,也可以确定对第二应用增大堆内存的优化策略,例如,应用垃圾回收为针对老年代堆内存时,可以确定对第二应用增大老年代堆内存的优化策略。当上述步骤101中获取的运行状况数据包括:第一应用所位于进程包括的线程在预设时间段内处于各状态的时间,上述步骤102可以采用如下方式确定对第二应用进行性能优化的优化策略:基于获取的第二应用的其所位于进程包括的线程在预设时间段内处于各状态的时间,确定对第二应用的程序代码是否需要检查的优化策略,具体可以如下:线程所处于的状态可以包括运行状态、休眠状态、等待状态和监视状态,例如,当一个线程长期处于等待状态时,即处于等待状态的时长大于状态时长阈值时,确定对第二应用的程序代码需要检查的优化策略,进一步的,还可以确定对第二应用的与该线程对应的程序代码需要检查的优化策略,以便用户能够更有针对性更有效的对程序代码进行检查,具体检查时,可以确定代码中是否出现了死锁或其它问题。当上述步骤101中获取的运行状况数据包括:CPU使用时间,上述步骤102可以采用如下方式确定对第二应用进行性能优化的优化策略:基于获取的第二应用的CPU使用时间,确定对第二应用是否需要提高硬件配置的优化策略,具体可以如下:当第二应用的CPU使用时间长期偏高时,如CPU使用时间大于预设使用时间阈值时,确定对第二应用需要提高硬件配置的优化策略,具体可以确定将应用迁移到更高配置环境中的优化策略,也可以确定提高应用目前所在环境的硬件配置的优化策略。采用本发明实施例提供的上述应用优化策略确定方法,由于第一应用和第二应用在PaaS平台上运行时位于同一个进程,所以第一应用和第二应用各自所位于进程的运行状况数据相同,所以该方法中第一应用获取自身所位于进程的运行状况数据,可以作为第二应用的运行状况数据,从而能够基于第二应用实际运行的运行状况数据,针对第二应用确定出更合理的优化策略。基于同一发明构思,根据本发明上述实施例提供的应用优化策略确定方法,相应地,本发明另一实施例还提供了一种应用优化策略确定装置,集成于PaaS平台上运行的第一应用,其结构示意图如图4所示,具体包括:数据获取单元401,用于在预设时间段内获取自身所位于进程的运行状况数据,作为所述PaaS平台上运行的且与所述第一应用位于同一进程中的第二应用的运行状况数据;策略确定单元402,用于基于获取的所述第二应用的运行状况数据,确定对所述第二应用进行性能优化的优化策略。进一步的,所述PaaS平台为JavaPaaS平台;数据获取单元401,具体用于通过自身包括的Java管理扩展JMX,确定自身所位于进程的待获取运行状况数据的数据接口;并在预设时间段内从所述数据接口周期获取自身所位于进程的运行状况数据。进一步的,在预设时间段内每次获取的运行状况数据包括:监控时间、堆内存初始化值、堆内存使用值、堆内存提交值和堆内存最大值;策略确定单元402,具体用于基于获取的所述第二应用的监控时间、堆内存初始化值、堆内存使用值、堆内存提交值和堆内存最大值,确定在所述预设时间段内堆内存使用值的变化趋势中的各峰值,以及相邻峰值之间的间隔时间的平均间隔时间;并根据在所述预设时间段内,所述平均间隔时间与预设间隔时间阈值的大小关系,以及所述各峰值与对应的堆内存最大值的大小关系,确定对所述第二应用的堆内存的优化策略;或者根据在所述预设时间段内堆内存提交值的变化趋势,确定对所述第二应用的堆内存的优化策略;或者根据在所述预设时间段内,堆内存提交值与对应的堆内存最大值的大小关系,确定对所述第二应用的堆内存的优化策略。进一步的,获取的运行状况数据包括:在预设时间段内进行应用垃圾回收的时间和次数;策略确定单元402,具体用于基于获取的所述第二应用的在预设时间段内进行应用垃圾回收的时间和次数,确定在所述预设时间段内进行应用垃圾回收的平均回收时间,以及回收周期;并根据确定的所述平均回收时间与预设回收时间阈值的大小关系,以及所述回收周期与预设周期阈值的大小关系,确定对所述第二应用使用的应用垃圾回收算法进行优化的优化策略。进一步的,获取的运行状况数据包括:所述第一应用所位于进程包括的线程在所述预设时间段内处于各状态的时间;策略确定单元402,具体用于基于获取的所述第二应用的其所位于进程包括的线程在所述预设时间段内处于各状态的时间,确定对所述第二应用的程序代码是否需要检查的优化策略。进一步的,获取的运行状况数据包括:中央处理器CPU使用时间;策略确定单元402,具体用于基于获取的所述第二应用的所述CPU使用时间,确定对所述第二应用是否需要提高硬件配置的优化策略。上述各单元的功能可对应于图1至图3所示流程中的相应处理步骤,在此不再赘述。基于同一发明构思,根据本发明上述实施例提供的应用优化策略确定方法,相应地,本发明另一实施例还提供了一种应用优化策略确定系统,其结构示意图如图5所示,包括:PaaS平台上运行的第一应用501,以及PaaS平台上运行的且与第一应用501位于同一进程中的第二应用502,其中:第一应用501,用于在预设时间段内获取自身所位于进程的运行状况数据,作为所述PaaS平台上运行的且与所述第一应用501位于同一进程中的第二应用502的运行状况数据;并基于获取的所述第二应用502的运行状况数据,确定对所述第二应用502进行性能优化的优化策略。上述系统中第一应用501的其它功能可对应于图1至图3所示流程中的相应处理步骤,在此不再赘述。综上所述,本发明实施例提供的方案,包括:第一应用在预设时间段内获取自身所位于进程的运行状况数据,作为PaaS平台上运行的且与第一应用位于同一进程中的第二应用的运行状况数据;并基于获取的第二应用的运行状况数据,确定对第二应用进行性能优化的优化策略。采用本发明实施例提供的方案,能够基于PaaS平台上的应用实际运行的运行状况数据,针对该应用确定出更合理的优化策略。本申请的实施例所提供的应用优化策略确定装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要应用优化策略确定装置具有上述功能,都应该在本申请的保护范围之内。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1