本发明专利技术公开了一种分析PHP应用软件性能的诊断系统及其方法和性能管理平台,该系统主要包括PHP引擎(1)和监控子系统(2);其中,PHP引擎(1),主要包括执行用户代码的模块(11)、执行扩展代码的模块(12)和处理故障逻辑的模块(13);监控子系统(2),用于在PHP执行引擎启动后通过设置所述监控子系统(2)监控PHP引擎(1)的执行用户代码的模块(11)、执行扩展代码的模块(12)和处理故障逻辑的模块(13),以监控软件代码的执行过程和处理故障信息,然后对采集到的性能数据和参数信息进行汇总并输出。采用本发明专利技术,能够高效、直观地分析PHP应用软件的性能,并克服现有监控工具缺少性能数据分类和缺少故障信息等技术缺陷。
【技术实现步骤摘要】
本专利技术涉及软件应用性能管理(AMP)技术,尤其涉及一种分析超文本预处理器(Hypertext Preprocessor, PHP)应用软件性能的诊断系统及其方法和性能管理平台,适用于利用PHP语言搭建的HTTP(S)服务器的应用软件性能管理(AMP)领域。
技术介绍
PHP,是一种开源的通用计算机脚本语言,适用于网络开发并可嵌入超文本标记语言(HTML)中使用。同时,PHP还是一种服务器端技术,应用PHP语言在服务器端边解释边执行,程序员不需进行编译就可以直接阅读HTML内容,即其源代码不需要进行二进制编译过程,就可以直接放在服务器上由PHP解释器运行。为了监控WEB服务器应用软件的性能,现在发展出了一类应用软件性能监测工具,利用该类应用软件性能监测工具能够通过追踪HTTP的请求过程记录应用软件的性能、网络信息和故障等数据。该类工具具有从服务器外部启动、模拟用户发起网络请求、不针对具体服务器编程语言等的特性。但是,这类工具存在如下缺点:1)模拟用户发起请求时,如果采样数量少,数据就会不准确;如果采样数量大,又会对服务器造成额外的压力;2)仅能记录应用软件的总响应性能,无法更深入地追踪到代码级别,而且在服务器性能出现问题时又无法定位具体原因。为了弥补以上这类软件性能监测工具的技术缺陷,通常在运行PHP语言的服务器上引入其他软件工具,如XHProf工具,利用该XHProf工具对应用服务器的性能进行代码级监控。该XHProf工具能够记录应用软件内部所有函数的调用起止时间及其开销数据,开发人员可以通过在PHP页面内部嵌入XHProf工具提供的接口代码的方式进行调用,产生的监控结果通常保存在服务器的本机硬盘上,最后再由运维人员通过查看单点报表或使用批处理工具对得到的数据进行汇总。例如,公开号为CN103049385A,名称为“一种云环境下的PHP代码调试方法及系统”的专利技术申请,就描述了开发人员如何利用接口代码调用XHProf及整合数据的技术,体现了该类工具在应用软件性能监控领域实施的不便。综上所述,该类借助XHProf工具对应用软件的性能进行代码级监控的技术,存在如下不足:1)其实施过程仍然需要开发人员的介入,不能实现自动监控;2)必须在每个需要监控的页面内嵌入XHProf工具提供的接口代码;3)仅能监控性能数据,无法提供故障信息;4)性能数据不直观,只有函数名称及其对应性能,不能按照其用途进行分类,使绝大多数缺乏专业技能的人员很难知晓所得到的数据的含义。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种分析PHP应用软件性能的诊断系统及其方法和性能管理平台,使其高效、直观地分析PHP应用软件的性能,以克服现有的工具缺少性能数据分类和缺少故障信息等技术缺陷。本专利技术的另一个目的在于利用上述的诊断系统和诊断方法,实现一种无需开发人员介入即可自动对PHP应用软件进行深入代码级别的应用性能管理平台,并能够根据不同的应用软件名称或依据不同的请求URL即可从该性能管理平台自动读取动态的应用设置,对PHP应用进行性能诊断。为达到上述目的,本专利技术的技术方案是这样实现的: 一种分析PHP应用软件性能的诊断系统,主要包括PHP引擎I和监控子系统2 ;其中,PHP引擎1,主要包括执行用户代码的模块11、执行扩展代码的模块12和处理故障逻辑的模块13 ; 监控子系统2,用于在PHP执行引擎启动后通过设置所述监控子系统2监控PHP引擎I的执行用户代码的模块11、执行扩展代码的模块12和处理故障逻辑的模块13,以监控软件代码的执行过程和处理故障信息,然后对采集到的性能数据和参数信息进行汇总并输出。一种分析PHP应用软件性能的诊断方法,包括如下步骤: A、在PHP执行引擎启动时设置监控子系统; B、在处理HTTP(S)请求的过程中,利用监控子系统监控软件代码的执行过程和处理故障信息; C、在PHP执行引擎退出前卸载监控子系统。其中,步骤A所述设置监控子系统具体包括: 当PHP启动时,PHP引擎将所有已加载扩展的初始化MINIT方法都执行一遍,然后在PHP_MINIT_FUNCT1N宏函数内实现设置监控函数。其中,步骤B所述利用监控子系统监控软件代码的执行过程,主要包括: B1、在HTTP (S)请求开始时,依据不同的应用软件名称或依据不同的请求URL读取动态的应用设置,在开启分析开关的条件下设置用户代码回调函数; B2、执行引擎循环进入下述不同的监控函数,直至应用代码执行完毕; B3、在HTTP请求结束时记录HTTP响应的状态信息,保存分类的性能数据、故障信息和代码执行过程数据。其中,所述步骤B2具体包括: B21、监控执行用户代码的函数的过程,包括:依据用户代码函数的名称对应用程序使用的框架进行归类;依据用户代码函数的实参对HTTP (S)请求进行命名;计算用户代码的执行性能;根据配置参数记录代码的执行过程; B22、监控执行扩展代码的函数的过程,依据扩展代码函数的名称进行组件类别归类和操作性能汇总; B23、监控处理故障逻辑的函数的过程,记录故障发生的类别和详细信息。所述步骤B21进一步包括: 用户代码执行完毕后,监控函数再次读取当前HTTP (S)请求的分析开关状态,如果分析开关处于关闭状态,则直接退出此段代码的监控;如果分析开关处于开启状态,则记录代码返回时间,并且计算此段代码的总执行时间。所述步骤B22进一步包括: 待扩展代码执行完毕后,监控函数再次读取当前HTTP (S)请求的分析开关状态,如果分析开关处于关闭状态,则直接退出此段代码的监控;如果分析开关处于开启状态,则记录代码返回时间,并且计算此段代码的总执行时间,然后通过函数名称检查当前扩展代码是否对应易于出现性能的外部组件;如果当前代码对应相应组件,则累计当前请求的外部组件及其操作性能。其中,在所述步骤B21、步骤B22中使用哈希映射的机制处理归类,以降低引入监控函数对应用程序的性能影响。一种包含权利要求1所述分析PHP应用软件性能的诊断系统的性能管理平台。一种采用权利要求2?8所述分析PHP应用软件性能的诊断方法的性能管理平台。本专利技术所提供的分析PHP应用软件性能的诊断系统及其方法和性能管理平台,具有以下优点: 第一,本专利技术能够依据不同的应用软件名称或依据不同的请求URL从分析PHP应用软件性能管理平台中读取动态的应用设置,从而可以避免研发人员的介入。第二,在上述读取动态的应用设置过程中,通过使用多级缓存的应用设置,可以提高分析效率。第三,依赖动态的应用设置,用户可选择禁用部分应用程序的分析功能,进一步提高分析效率,并降低了无效数据的干扰。第四,通过分析PHP引擎的故障信息,可以提高数据的直观性。第五,通过归类的应用框架名称和命名的HTTP (S)请求,以及通过组件类别归类和操作性能汇总,进一步提高了数据的直观性。【附图说明】图1为本专利技术的分析PHP应用软件性能的诊断系统结构示意图; 图2为本专利技术的PHP应用软件性能和故障诊断过程示意图; 图3为本专利技术设置的监控函数执行过程流程图; 图4为本专利技术设置监控HTTP请求过程流程图; 图5为本专利技术使用多级缓存的应用配置示意图。【具体实施方式】下面结合附图及本专利技术的本文档来自技高网...
【技术保护点】
一种分析PHP应用软件性能的诊断系统,其特征在于,主要包括PHP引擎(1)和监控子系统(2);其中,PHP引擎(1),主要包括执行用户代码的模块(11)、执行扩展代码的模块(12)和处理故障逻辑的模块(13);监控子系统(2),用于在PHP执行引擎启动后通过设置所述监控子系统(2)监控PHP引擎(1)的执行用户代码的模块(11)、执行扩展代码的模块(12)和处理故障逻辑的模块(13),以监控软件代码的执行过程和处理故障信息,然后对采集到的性能数据和参数信息进行汇总并输出。
【技术特征摘要】
【专利技术属性】
技术研发人员:甄志会,
申请(专利权)人:北京基调网络系统有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。