应用服务器的性能分析方法和应用服务器技术

技术编号:4136877 阅读:304 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种应用服务器的性能分析方法和应用服务器,主要通过开启性能日志模块来收集在进行远程调用时或HTTP请求应答时应用服务器的性能数据,然后将这些性能数据以日志的形式输出;相比较于现有技术中采用性能剖析器来进行应用服务器的性能分析而言,本方案不存在必须记录分析范围内的每个Java指令的情况,其时间消耗主要在输出日志时的文件系统接口,但这可以通过日志工具包,比如Log4j使得该部分的消耗降到最低,从而可以实现提高分析效率的目的,使其可以在生产环境中使用。

【技术实现步骤摘要】

本专利技术涉及通信
,具体涉及应用服务器的性能分析方法和应用服 务器。
技术介绍
在Java领域,分析性能问题的主要工具就是性能剖析器(Profiler),用于 分析应用程序的响应时间及内存占用,从而实现对应用服务器的性能分析。性 能剖析器主要使用步骤如下应用程序启动时,增加某个Java虚拟机(JVM, Java Virtual Machine)启 动参数,开启虚拟机工具接口代理(JVMTI Agent, JVM Tool Interface Agent) 服务以启动虚拟机工具接口。在运行待分析功能点前,性能剖析器指定一个分 析范围,例如某个命名空间某些类的所有方法等,然后通过虛拟机的接口,附 加到正在运行的应用程序上,之后即可以运行待分析功能点,由性能剖析器记 录该待分析功能点执行过程中的Java指令执行或对象创建等明细信息,直至 待分析功能点运行结束,此时,性能剖析器根据明细信息生成性能图表,然后 再根据性能图表,分析该功能点性能缺陷的性质,给出优化方案。在对现有技术的研究和实践过程中,本专利技术的专利技术人发现,采用性能剖析 器来实现对应用服务器的性能分析时,由于性能剖析器必须记录分析范围内的 每个Java指令,所以会使所有Java指令的执行时间增加,从而降低应用程序 的整体运行速度,特别是随着分析范围的增大,可能会几倍甚至几十倍地增加 功能的响应时间,导致分析效率较低,使得其只能在开发环境中使用,而无法 在生产环境中使用,但是许多性能缺陷只在生产环境中出现,开发环境中无法 重现,因此很难实现性能优化。
技术实现思路
本专利技术实施例提供应用服务器的性能分析方法和应用服务器,可以实现较 高的分析效率,使其可以在生产环境中使用。 一种应用服务器的性能分析方法,包括接收到远程调用请求或超文本传输协议(HTTP , Hypertext Transfer Protocol)请求应答时,通知性能日志模块(PerformaceLog)开始性能事务; 发送所述性能事务请求给业务组件;通过业务组件执行数据库连接(JDBC, Java Data Base Connectivity)以访问数据库;记录在访问数据库的过程中的性能数据;将所述性能数据发送给性能日志模块,从而完成一次性能事件;在完成远程调用处理或生成HTTP应答时,通知性能日志模块结束性能事 务,以便性能日志模块将接收到的性能数据转换成性能事务、性能事件及其参 数后,输出日志文件。一种应用服务器,包括开始通知单元,用于接收到远程调用请求或HTTP请求应答时,通知性能日志模块开始性能事务;启动单元,发送所述性能事务请求给业务组件;访问单元,用于通过启动单元启动的业务组件执行JDBC以访问数据库; 记录单元,用于记录在访问单元访问数据库的过程中的性能数据; 发送单元,将所述记录单元记录的性能数据发送给开始通知单元所通知的 性能日志模块,从而完成一次性能事件;结束通知单元,用于在完成远程调用处理或生成HTTP应答时,通知性能 日志模块结束性能事务,以便性能日志模块将接收到的发送单元所发送的性能 数据转换成性能事务、性能事件及其参数后,输出日志文件。本专利技术实施例采用了一种与现有技术中完全不同的性能分析方法,主要通 过开启性能日志模块来收集在进行远程调用时或HTTP请求应答时应用服务器 的性能数据,然后将这些性能数据以日志的形式输出;相比较于现有技术中采 用性能剖析器来进行应用服务器的性能分析而言,本方案不存在必须记录分析 范围内的每个Java指令的情况,其时间消耗主要在输出日志时的文件系统接 口,但这可以通过日志工具包,比如Log4j使得该部分的消耗降到最低,从而 可以实现提高分析效率的目的,使其可以在生产环境中使用。附图说明20 为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。图l是本专利技术实施例一所提供的方法的方法流程图2是本专利技术实施例二所提供的方法的方法流程图; 图3是本专利技术实施例三所提供的方法的方法流程图; 图4是是本专利技术实施例所提供的应用服务器的结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是 全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种应用服务器的性能分析方法和应用服务器。以下分 别进行详细i兑明。实施例一、本实施例将从应用服务器的角度进行描述。一种应用服务器的性能分析方法,包括接收到远程调用请求或超文本传 输协议(HTTP, Hypertext Transfer Protocol)请求应答时,通知性能日志模块 (PerformaceLog)开始性能事务,其中,性能事务包括性能事件(当然,性 能事务中也可能没有性能事件);发送该性能事务请求给业务组件,通过业务 组件执行数据库连接(JDBC, Java Data Base Connectivity)以访问数据库;记 录在访问数据库的过程中的性能数据;将所记录的性能数据发送给性能日志模 块,从而完成一次性能事件;在完成远程调用处理或生成HTTP应答时,通知 性能日志模块结束性能事务,以便性能日志模块将接收到的性能数据转换成性 能事务、性能事件及其参数后,输出日志文件。如图1所示,其具体流程可以 如下101、接收到远程调用请求或HTTP请求应答时,通知性能日志模块开始性能事务,其中,性能事务可以包括性能事件;例如,通过开始远程调用消息(startlnvoke)通知性能日志模块开始性能 事务;或者,通过开始HTTP消息(startHttp)通知性能日志模块开始性能事务。102、 发送该接收到的性能事务请求给业务组件,比如BizControllerBean;103、 通过业务组件执行JDBC以访问数据库;例如通过业务组件调用第一JDBC驱动模块,比如多数据库SQL翻译模 块(KSQL,其中,SQL为Structured Quevy Language,即结构化查询语言), 由第一JDBC驱动模块通过第二JDBC驱动模块,比如数据库驱动程序模块 (Oracle JDBC Driver)访问数据库。其中,KSQL为一种特殊的JDBC驱动(Driver),主要用于将一套标准SQL 语法翻译为不同数据库类型的本地语法,然后将SQL交给不同数据库的JDBC Driver来处理。KSQL不仅负责翻译,也监视具体JDBC操作的性能,分发监视 器事件给注册的监听器。本文描述的性能日志,就是KSQL的监听器之一。当然,在通过业务组件执行JDBC以访问数据库时还可以通过业务组件执 行一些不需要访问数据库的逻辑,只消耗CPU和占用内存。104 、记录在访问数据库的过程中的性能数据;105、 将记录下来的性能数据发送给性能日志模块,从而完成一次性能事 件;例如,可以通过JDBC运行模块(jdbcPerformed)将这些性能数据发本文档来自技高网...

【技术保护点】
一种应用服务器的性能分析方法,其特征在于,包括: 接收到远程调用请求或超文本传输协议HTTP请求应答时,通知性能日志模块开始性能事务; 发送所述性能事务请求给业务组件; 通过业务组件块执行数据库连接JDBC以访问数据库;   记录在访问数据库的过程中的性能数据; 将所述性能数据发送给性能日志模块,从而完成一次性能事件; 在完成远程调用处理或生成HTTP应答时,通知性能日志模块结束性能事务,以便性能日志模块将接收到的性能数据转换成性能事务、性能事 件及其参数后,输出日志文件。

【技术特征摘要】
1、一种应用服务器的性能分析方法,其特征在于,包括接收到远程调用请求或超文本传输协议HTTP请求应答时,通知性能日志模块开始性能事务;发送所述性能事务请求给业务组件;通过业务组件块执行数据库连接JDBC以访问数据库;记录在访问数据库的过程中的性能数据;将所述性能数据发送给性能日志模块,从而完成一次性能事件;在完成远程调用处理或生成HTTP应答时,通知性能日志模块结束性能事务,以便性能日志模块将接收到的性能数据转换成性能事务、性能事件及其参数后,输出日志文件。2、 根据权利要求l所述的方法,其特征在于,所述通过业务组件执行JDBC 以访问数据库包括通过业务组件调用第一JDBC驱动模块,由第一JDBC驱动模块通过第二 JDBC驱动模块访问数据库。3、 根据权利要求l所述的方法,其特征在于,所述将所述性能数据发送给 性能日志模块包括通过JDBC运行模块将所述性能数据发送给性能日志模块。4、 根据权利要求l所述的方法,其特征在于, 所述通知性能日志模块开始性能事务包括通过开始远程调用消息startlnvoke通知性能日志模块开始性能事务;或者, 通过开始HTTP消息startHttp通知性能日志模块开始性能事务。 所述通知性能日志模块结束性能事务包括通过结束远程调用消息endlnvoke通知性能日志模块结束性能事务;或者, 通过结束HTTP消息endHttp通知性能日志模块结束性能事务。5、 根据权利要求1至4任一项所述的方法,其特征在于,在通过业务组件 执行JDBC以访问数据库时还包括通过业务组件执行一些不需要访问数据库的逻辑。6、 一种应用服务器,其特征在于,包括开始通知单元,用于接收到远程调用请求或超...

【专利技术属性】
技术研发人员:殷慷
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[]

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

1