一种获取应用系统性能分析数据的方法与系统的制作方法

文档序号:6339624阅读:149来源:国知局
专利名称:一种获取应用系统性能分析数据的方法与系统的制作方法
技术领域
本发明涉及网络技术领域,更具体的说是涉及一种获取应用系统性能分析数据的 方法与系统。
背景技术
随着信息技术的发展,在办公、电子政务、电子商务等相关领域建立了大量的浏览 器/服务器模式的应用系统。在浏览器/服务器模式的应用系统中,用户可以通过万维网浏 览器去访问因特网上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许 多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接, 大量的数据实际存放在数据库服务器中,而客户端除了浏览器,一般无须任何用户程序。浏 览器/服务器模式的应用系统的建立,给人们的生活和工作带来了极大的便利。但由于客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器 承担,这样随着系统的数据量和访问人数的增加,系统的运行速度就会下降。为了找出系统 中的性能瓶颈或薄弱环节,分析导致系统运行速度下降的原因,就需要对系统当前的运行 性能进行监控分析。现有的对应用系统性能分析的方法主要有CPU分析、线程分析等等。其中,CPU分 析是指在应用程序运行阶段,查看应用系统进程占用操作系统内存的百分比;线程分析是 指在应用系统运行阶段,查看应用系统启动的线程数目、峰值数目既活跃线程数。但现有的 方法是从整个应用的角度查看应用系统对操作系统及运行环境的影响,获取相应的分析数 据,当发现系统的运行速度下降时,根据获取到的数据,不能准确定位导致运行速度下降的 具体环节。

发明内容
有鉴于此,本发明提供一种获取应用系统性能分析数据的方法与系统,通过本发 明的方法,能获取到应用系统更小粒度的性能分析数据,以便为准确定位系统的性能瓶颈, 进而为找到导致系统运行速度下降的具体原因提供分析依据。为实现上述目的,本发明提供如下技术方案—种获取应用系统性能分析数据的方法,包括截获访问页面文件的请求,记录接收所述请求时刻的时间;在应用程序处理所述请求的过程中,监控所述应用程序调用各层方法的操作,在 各层方法代码的入口及出口处分别插入开始计时代码及结束计时代码,获得所述应用程序 在各层的执行时间;截获针对所述请求返回的响应,记录返回所述响应时刻的时间;根据所述接收请求时刻的时间以及返回响应时刻的时间,确定所述请求的响应耗 时;记录所述响应耗时及各层的执行时间,保存为所述页面文件的性能分析数据。
优选的,还包括获取所述请求访问的页面文件对应的系统模块,根据同一系统模块对应的各个页 面文件的响应耗时,统计该系统模块的耗时数据。优选的,所述统计该系统模块的耗时数据包括统计出该系统模块对应的各个页面文件中,响应耗时最大的页面文件;和/ 或,统计出该系统模块对应的各个页面文件的平均响应耗时。优选的,还包括按照预定的时间区间,确定各个页面文件的响应耗时所属的区间范围。优选的,还包括统计各个区间内的页面文件的数目。一种获取应用系统性能分析数据的系统,包括请求记录单元,用于截获访问页面文件的请求,记录接收所述请求时刻的时间;监控单元,用于在应用程序处理所述请求的过程中,监控所述应用程序调用各层 方法的操作,在各层方法代码的入口及出口处分别插入开始计时代码及结束计时代码,获 得所述应用程序在各层的执行时间;响应记录单元,用于截获针对所述请求返回的响应,记录返回所述响应时刻的时 间;耗时统计单元,用于根据所述接收请求时刻的时间以及返回响应时刻的时间,确 定所述请求的响应耗时;数据保存单元,用于记录所述响应耗时及各层的执行时间,保存为所述页面文件 的性能分析数据。优选的,还包括模块统计单元,用于获取所述请求访问的页面文件对应的系统模块,根据同一系 统模块对应的各个页面文件的响应耗时,统计该系统模块的耗时数据。优选的,所述模块统计单元包括最大耗时单元,用于统计出该系统模块对应的各个页面文件中,响应耗时最大的 页面文件;和/ 或,平均耗时单元,用于统计出该系统模块对应的各个页面文件的平均响应耗时。优选的,还包括区间划分单元,用于按照预定的时间区间,确定各个页面文件的响应耗时所属的 区间范围。优选的,区间划分单元包括区间统计单元,用于统计各个区间内的页面文件的数目。经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种获取应用系 统性能分析数据的方法与系统,该方法通过截获访问页面文件的请求,记录该请求开始时 刻和响应返回时刻,得到响应耗时数据,并在执行所述请求对应的应用程序时,记录所述应 用程序的各层耗时,因此能够获取到应用系统更小粒度的性能分析数据。对以上获取到的5数据进行分析,当发现该次请求的响应耗时较长时,可以根据各层耗时的数据准确找出耗 时较长的层,从而能准确定位系统性能瓶颈。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。图1为本发明一种获取应用系统性能分析数据的方法实施例的流程图;图2为本发明一种获取应用系统性能分析数据的系统实施例的结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。对于浏览器/服务器模式的应用系统,客户端是通过发送访问网页请求访问系统 的,即通过输入网页地址(URL,Universal Resource Locator)或点击链接相应的URL地址 访问相应的网页资源。当系统处于良好的性能状态时,系统能快速响应客户端的请求,为客 户端返回与该URL地址相对应的网页资源。也就是说,从接收到客户端的URL请求,到服务 器将请求结果返回给客户端所消耗的时间(即,URL请求耗时)能反映出系统的性能状况。 基于以上思想,本发明通过对URL请求耗时进行监控和分析,获取系统性能分析数据,以便 准确定位系统性能瓶颈。参见图1,为本发明实施例的一种获取应用系统性能分析数据的方法的步骤流程 图,本实施例的方法包括步骤SlOl 截获访问页面文件的请求,记录接收所述请求时刻的时间;在浏览器/服务器模式的应用系统中,客户端通过输入URL地址或点击URL链接, 发送访问网站的请求给服务器。而客户端除了浏览器之外一般无须任何应用程序,当客户 端需要访问网页资源时,只需从Web服务器上下载到本地执行,在下载过程中如遇到与数 据有关的指令,由Web服务器交给数据服务器来执行,并返回给Web服务器,Web服务器又 返回给客户端。本发明中,通过截获客户端发送的网页文件请求,从而得到该访问请求的具体时 刻,并记录该请求时刻的时间,以便后续统计URL请求耗时。步骤S102 在应用程序处理所述请求的过程中,监控所述应用程序调用各层方法 的操作,在各层方法代码的入口及出口处分别插入开始计时代码及结束计时代码,获得所 述应用程序在各层的执行时间;服务器接收到URL访问请求,记录该访问请求的开始时刻后,将执行该访问请求 对应的应用程序。对于不同Web应用程序,可能会有不同的分层体系结构。例如,对应某个 Web应用程序可能分为三层展现层、业务逻辑层和数据访问层。当然有的应用程序可能分为四层,对于不同的应用程序分层情况可能会不同。获取应用程序各层执行时间的数据,是为了当发现某次请求耗时较长时,能准确 定位耗时较长的层,找到系统的性能瓶颈,从而采取相应措施,改善系统性能。为了获取到应用程序各层的执行时间,在监控应用程序执行的过程中,在应用程 序各层代码的开始和结尾处分别插入开始计时代码和结束计时代码,这样,在应用程序处 理该访问请求的过程中,就可以记录应用程序各层的开始执行时间和结束时间,从而得到 各层执行时间。以应用程序分为展现层、业务逻辑层和数据访问层为例,在该应用程序的各 层代码的入口及出口处分别插入开始计时代码及结束计时代码,就可以知道展现层的开始 执行时间和结束时间,从而得到展现层的耗时,对于业务逻辑层和数据层的耗时也是采用 同样的方式得到。步骤S103 截获针对所述请求返回的响应,记录返回所述响应时刻的时间;当该应用程序的各层调用结束后,会将该访问请求的结果返回服务器,本发明能 首先截获到返回的响应,记录该响应返回的时刻,同时由服务器将请求的响应返回客户端, 以便在客户端的浏览器中展现相应的网页资源。步骤S104 根据所述接收请求时刻的时间以及返回响应时刻的时间,确定所述请 求的响应耗时;其中,响应耗时,是指从客户端发出访问页面文件的请求,到为客户端返回该请求 结果所消耗的时间。通过记录该访问请求的开始时刻,以及响应返回的时刻,便能确定该次访问请求 的响应耗时。步骤S105 记录所述响应耗时及各层的执行时间,保存为所述页面文件的性能分 析数据。将上述响应耗时,以及监控得到的应用程序各层的执行时间的数据进行保存,以 便对该次访问请求的耗时进行分析,如果发现该次访问请求的响应耗时较长,表明该系统 可能存在问题,然后分析该次请求的应用系统各层的耗时情况,找出耗时较高的层,从而定 位系统性能瓶颈。为了能更好的进行系统性能分析,还可以获取该访问请求对应的系统模块的耗时 数据。因此,本发明的方法还包括获取所述请求访问的页面文件对应的系统模块,根据同 一系统模块对应的各个页面文件的响应耗时,统计该系统模块的耗时数据。其中,在Web应 用系统,一般一个系统模块的页面文件会放置在同一目录下,因此确定该访问请求对应的 系统模块,可以通过提取URL路径信息确定该访问请求需要访问的系统模块。而一个系统 模块可能会执行多个页面文件的请求,将同一系统模块对应的各个页面文件的响应耗时进 行统计,得到该模块的响应耗时数据。当然,有些Web应用系统本身具有资源管理功能,能够完成URL到系统模块的注 册,这样可以更方便的通过URL获取到该请求对应的系统模块。同时能更方便的获取到同 一个系统模块所执行的页面文件的请求。通过将访问请求与具体的模块相关联,统计各系统模块的耗时数据,当发现访问 请求的响应耗时较长时,可以首先对该访问请求对应的系统模块进行分析,将系统问题定 位到具体的系统模块。然后根据系统模块的分层情况,分析各层的耗时情况,将性能问题定7位到系统模块中具体的层。进一步的,统计该模块的耗时数据可以包括统计出该系统模块对应的各个页面 文件中,响应耗时最大的页面文件;和/或,统计出该系统模块对应的各个页面文件的平均 响应耗时。当然,还可以统计同一系统模块的请求次数。通过统计各模块的请求平均耗时、 最大耗时、请求次数等数据,可以分析访问请求所集中的系统模块,响应耗时较长的请求分 布在哪些系统模块,以便针对耗时较长的模块进行系统优化工作。为了进行系统分析时,能更好的判定该次访问请求是否耗时较长,本发明的方法 还包括按照预定的时间区间,确定各个页面文件的响应耗时所属的区间范围。其中,预设 的时间区间可根据服务器的硬件情况和对应用系统性能要求的灵活度进行设置。设置时间 区间后,就可以根据页面文件的响应耗时,找到该响应耗时所属的区间,然后可以判断该响 应耗时,是否属于耗时较长的区间。例如,可以设置如下时间区间
,[30ms, 80ms],[80ms, 150ms],[150ms, 500ms],[500ms+],当获取到某页 面文件的响应耗时为200ms,就可以知道该次响应耗时属于[150ms,500ms]的时间区间,然 后确定该次访问请求是否属于耗时较长的区间,如果是,则分析该次访问请求所访问的模 块的耗时情况,以及该模块各层执行时间,从而找到影响系统性能的具体环节。当然,对于 实时性要求较高的系统,划分时间区间时,时间间隔就可以相应小些。当然,还可以统计各个时间区间内的页面文件的数目。也就是说,对于在一个时间 区间,有多少页面文件的响应耗时属于该区间。还可以统计各个时间区间内的平均耗时。这 样可以直观反应响应耗时集中的区间。本发明的实施例中还可以将获得到网页文件响应耗时、应用程序各层执行时间、 和/或各模块的耗时数据,按照一定的时间间隔进行统计,得到统计数据。例如,统计一个 小时内,各个模块耗时数据,或该时间段内各模块的访问次数等。依据统计数据的增长趋 势,可以预测系统中应用负载的发展趋势,以便更好的了解系统性能。对应本发明的方法,本发明还提供了一种获取应用系统性能分析数据的系统,参 见图2,本发明的系统包括请求记录单元201,用于截获访问页面文件的请求,记录接收所述请求时刻的时 间;监控单元202,用于在应用程序处理所述请求的过程中,监控所述应用程序调用各 层方法的操作,在各层方法代码的入口及出口处分别插入开始计时代码及结束计时代码, 获得所述应用程序在各层的执行时间;响应记录单元203,用于截获针对所述请求返回的响应,记录返回所述响应时刻的 时间;耗时统计单元204,用于根据所述接收请求时刻的时间以及返回响应时刻的时间, 确定所述请求的响应耗时;数据保存单元205,用于记录所述响应耗时及各层的执行时间,保存为所述页面文 件的性能分析数据。为了能获取各模块的耗时数据,以便更准确的进行系统性能分析,本发明的系统 还包括模块统计单元,用于获取所述请求访问的页面文件对应的系统模块,根据同一系统模块对应的各个页面文件的响应耗时,统计该系统模块的耗时数据。进一步的,该模块统计单元还包括最大耗时单元,用于统计出该系统模块对应的 各个页面文件中,响应耗时最大的页面文件;和/或,平均耗时单元,用于统计出该系统模 块对应的各个页面文件的平均响应耗时。为了能更准确的判断访问请求的响应耗时是否属于耗时较长,本发明的系统还包 括区间划分单元,用于按照预定的时间区间,确定各个页面文件的响应耗时所属的区间范 围。进一步的,该区间划分单元还包括区间统计单元,用于统计各个区间内的页面文件的数目。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。9
权利要求
1.一种获取应用系统性能分析数据的方法,其特征在于,包括 截获访问页面文件的请求,记录接收所述请求时刻的时间;在应用程序处理所述请求的过程中,监控所述应用程序调用各层方法的操作,在各层 方法代码的入口及出口处分别插入开始计时代码及结束计时代码,获得所述应用程序在各 层的执行时间;截获针对所述请求返回的响应,记录返回所述响应时刻的时间; 根据所述接收请求时刻的时间以及返回响应时刻的时间,确定所述请求的响应耗时; 记录所述响应耗时及各层的执行时间,保存为所述页面文件的性能分析数据。
2.根据权利要求1所述的方法,其特征在于,还包括获取所述请求访问的页面文件对应的系统模块,根据同一系统模块对应的各个页面文 件的响应耗时,统计该系统模块的耗时数据。
3.根据权利要求2所述的方法,其特征在于,所述统计该系统模块的耗时数据包括 统计出该系统模块对应的各个页面文件中,响应耗时最大的页面文件;和/或,统计出该系统模块对应的各个页面文件的平均响应耗时。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括 按照预定的时间区间,确定各个页面文件的响应耗时所属的区间范围。
5.根据权利要求4所述的方法,其特征在于,还包括 统计各个区间内的页面文件的数目。
6.一种获取应用系统性能分析数据的系统,其特征在于,包括请求记录单元,用于截获访问页面文件的请求,记录接收所述请求时刻的时间; 监控单元,用于在应用程序处理所述请求的过程中,监控所述应用程序调用各层方法 的操作,在各层方法代码的入口及出口处分别插入开始计时代码及结束计时代码,获得所 述应用程序在各层的执行时间;响应记录单元,用于截获针对所述请求返回的响应,记录返回所述响应时刻的时间; 耗时统计单元,用于根据所述接收请求时刻的时间以及返回响应时刻的时间,确定所 述请求的响应耗时;数据保存单元,用于记录所述响应耗时及各层的执行时间,保存为所述页面文件的性 能分析数据。
7.根据权利要求6所述的系统,其特征在于,还包括模块统计单元,用于获取所述请求访问的页面文件对应的系统模块,根据同一系统模 块对应的各个页面文件的响应耗时,统计该系统模块的耗时数据。
8.根据权利要求7所述的方法,其特征在于,所述模块统计单元包括最大耗时单元,用于统计出该系统模块对应的各个页面文件中,响应耗时最大的页面 文件;和/或,平均耗时单元,用于统计出该系统模块对应的各个页面文件的平均响应耗时。
9.根据权利要求6至8任一项所述的系统,其特征在于,还包括区间划分单元,用于按照预定的时间区间,确定各个页面文件的响应耗时所属的区间范围。
10.根据权利要求9所述的系统,其特征在于,区间划分单元包括 区间统计单元,用于统计各个区间内的页面文件的数目。
全文摘要
本发明公开了一种获取应用系统性能分析数据的方法与系统,该方法通过截获访问页面文件的请求,记录该请求开始时刻和响应返回时刻,得到响应耗时数据,并在监控应用程序执行的过程中,获取应用程序各层耗时数据。该方法能获取到应用系统更小粒度的性能分析数据,以便为准确定位系统的性能瓶颈,进而为准确找到导致系统运行速度下降的具体原因提供分析依据。
文档编号G06F11/00GK102043679SQ201010601690
公开日2011年5月4日 申请日期2010年12月22日 优先权日2010年12月22日
发明者张敏杰, 徐龙隆, 王宇飞 申请人:北京中电普华信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1